Skip to content

Commit d0569a5

Browse files
feat(AsideHeader): add onMenuMoreClick (#320)
* feat(AsideHeader): add onMenuMoreClick
1 parent 114a0d0 commit d0569a5

File tree

7 files changed

+14
-0
lines changed

7 files changed

+14
-0
lines changed

src/components/AsideHeader/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ export const Aside: FC = () => {
136136
| onChangeCompact | Callback will be called when changing navigation visual state | `(compact: boolean) => void;` | |
137137
| onClosePanel | Callback will be called when closing panel. You can add panels via `PanelItems` prop | `() => void;` | |
138138
| onMenuItemsChanged | Callback will be called when updating list of the menuItems in `AllPagesPanel` | `(items: Array<MenuItem>) => void` | |
139+
| onMenuMoreClick | Callback will be called when some items don't fit and "more" button is clicked | `() => void;` | |
139140
| openModalSubscriber | Function notifies `AsideHeader` about Modals visibility changes | `( (open: boolean) => void) => void` | |
140141
| panelItems | Items for `Drawer` component. Used for show additional information over main content | [`Array<DrawerItem>`](./../Drawer/README.md#draweritem-props) | `[]` |
141142
| renderContent | Function rendering the main content at the right of the `AsideHeader` | `(data: {size: number}) => React.ReactNode` | |

src/components/AsideHeader/__stories__/AsideHeaderShowcase.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ export const AsideHeaderShowcase: React.FC<AsideHeaderShowcaseProps> = ({
295295
onChangeCompact={(v) => {
296296
setCompact(v);
297297
}}
298+
onMenuMoreClick={() => console.log('onMenuMoreClick')}
298299
/>
299300
</div>
300301
);

src/components/AsideHeader/components/FirstPanel.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export const FirstPanel = React.forwardRef<HTMLDivElement>((_props, ref) => {
1919
headerDecoration,
2020
multipleTooltip,
2121
menuMoreTitle,
22+
onMenuMoreClick,
2223
renderFooter,
2324
compact,
2425
customBackground,
@@ -53,6 +54,7 @@ export const FirstPanel = React.forwardRef<HTMLDivElement>((_props, ref) => {
5354
items={visibleMenuItems}
5455
menuMoreTitle={menuMoreTitle ?? i18n('label_more')}
5556
onItemClick={onItemClick}
57+
onMoreClick={onMenuMoreClick}
5658
multipleTooltip={multipleTooltip}
5759
/>
5860
) : (

src/components/AsideHeader/types.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export interface AsideHeaderGeneralProps extends QAProps {
4444
editMenuProps?: EditMenuProps;
4545
onClosePanel?: () => void;
4646
onChangeCompact?: (compact: boolean) => void;
47+
onMenuMoreClick?: () => void;
4748
openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;
4849
}
4950

src/components/CompositeBar/CompositeBar.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export type CompositeBarProps = CompositeBarItems & {
3939
) => void;
4040
multipleTooltip?: boolean;
4141
menuMoreTitle?: string;
42+
onMoreClick?: () => void;
4243
};
4344

4445
type CompositeBarViewProps = CompositeBarProps & {
@@ -49,6 +50,7 @@ const CompositeBarView: FC<CompositeBarViewProps> = ({
4950
type,
5051
items,
5152
onItemClick,
53+
onMoreClick,
5254
collapseItems,
5355
multipleTooltip = false,
5456
}) => {
@@ -215,6 +217,7 @@ const CompositeBarView: FC<CompositeBarViewProps> = ({
215217
onMouseEnter={onMouseEnterByIndex(itemIndex)}
216218
onMouseLeave={onMouseLeave}
217219
onItemClick={onItemClickByIndex(itemIndex)}
220+
onCollapseItemClick={onMoreClick}
218221
collapseItems={collapseItems}
219222
/>
220223
);
@@ -238,6 +241,7 @@ export const CompositeBar: FC<CompositeBarProps> = ({
238241
items,
239242
menuMoreTitle,
240243
onItemClick,
244+
onMoreClick,
241245
multipleTooltip = false,
242246
}) => {
243247
if (items.length === 0) {
@@ -267,6 +271,7 @@ export const CompositeBar: FC<CompositeBarProps> = ({
267271
type="menu"
268272
items={listItems}
269273
onItemClick={onItemClick}
274+
onMoreClick={onMoreClick}
270275
collapseItems={collapseItems}
271276
multipleTooltip={multipleTooltip}
272277
/>

src/components/CompositeBar/Item/Item.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export interface ItemProps extends ItemPopup {
3939
event: React.MouseEvent<HTMLDivElement, MouseEvent>,
4040
) => void;
4141
onItemClickCapture?: (event: React.SyntheticEvent) => void;
42+
onCollapseItemClick?: () => void;
4243
bringForward?: boolean;
4344
}
4445

@@ -85,6 +86,7 @@ export const Item: React.FC<ItemInnerProps> = (props) => {
8586
onClosePopup,
8687
onItemClick,
8788
onItemClickCapture,
89+
onCollapseItemClick,
8890
bringForward,
8991
} = props;
9092

@@ -172,6 +174,7 @@ export const Item: React.FC<ItemInnerProps> = (props) => {
172174
* - onClosePanel calls twice for each popuped item, as result it will prevent opening of panelItems
173175
*/
174176
toggleOpen(!open);
177+
onCollapseItemClick?.();
175178
} else {
176179
onItemClick?.(item, false, event);
177180
}

src/components/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export interface MenuItem extends QAProps {
2929
event: React.MouseEvent<HTMLDivElement, MouseEvent>,
3030
) => void;
3131
onItemClickCapture?: (event: React.SyntheticEvent) => void;
32+
onCollapseItemClick?: () => void;
3233
itemWrapper?: (
3334
p: MakeItemParams,
3435
makeItem: (p: MakeItemParams) => React.ReactNode,

0 commit comments

Comments
 (0)