Skip to content

Commit 56aee03

Browse files
authored
Simplify ContextMenuItemGroup (removing originalListener) (#7067)
Simplify ContextMenuItemGroup by removing originListener
1 parent fc243d0 commit 56aee03

File tree

3 files changed

+34
-45
lines changed

3 files changed

+34
-45
lines changed

packages/compass-components/src/components/context-menu.tsx

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ export function ContextMenuProvider({
2323
export function ContextMenu({ menu }: ContextMenuWrapperProps) {
2424
const menuRef = useRef(null);
2525

26-
const position = menu.position;
27-
const itemGroups = menu.itemGroups;
26+
const { position, itemGroups } = menu;
2827

2928
useEffect(() => {
3029
if (!menu.isOpen) {
@@ -50,42 +49,38 @@ export function ContextMenu({ menu }: ContextMenuWrapperProps) {
5049
setOpen={menu.close}
5150
justify="start"
5251
>
53-
{itemGroups.map(
54-
(itemGroup: ContextMenuItemGroup, groupIndex: number) => {
55-
return (
56-
<div
57-
key={`menu-group-${groupIndex}`}
58-
data-testid={`menu-group-${groupIndex}`}
59-
>
60-
{itemGroup.items.map(
61-
(item: ContextMenuItem, itemIndex: number) => {
62-
return (
63-
<MenuItem
64-
key={`menu-group-${groupIndex}-item-${itemIndex}`}
65-
data-text={item.label}
66-
data-testid={`menu-group-${groupIndex}-item-${itemIndex}`}
67-
onClick={(evt: React.MouseEvent) => {
68-
item.onAction?.(evt);
69-
menu.close();
70-
}}
71-
>
72-
{item.label}
73-
</MenuItem>
74-
);
75-
}
76-
)}
77-
{groupIndex < itemGroups.length - 1 && (
78-
<div
79-
key={`menu-group-${groupIndex}-separator`}
80-
data-testid={`menu-group-${groupIndex}-separator`}
52+
{itemGroups.map((items: ContextMenuItemGroup, groupIndex: number) => {
53+
return (
54+
<div
55+
key={`menu-group-${groupIndex}`}
56+
data-testid={`menu-group-${groupIndex}`}
57+
>
58+
{items.map((item: ContextMenuItem, itemIndex: number) => {
59+
return (
60+
<MenuItem
61+
key={`menu-group-${groupIndex}-item-${itemIndex}`}
62+
data-text={item.label}
63+
data-testid={`menu-group-${groupIndex}-item-${itemIndex}`}
64+
onClick={(evt: React.MouseEvent) => {
65+
item.onAction?.(evt);
66+
menu.close();
67+
}}
8168
>
82-
<MenuSeparator />
83-
</div>
84-
)}
85-
</div>
86-
);
87-
}
88-
)}
69+
{item.label}
70+
</MenuItem>
71+
);
72+
})}
73+
{groupIndex < itemGroups.length - 1 && (
74+
<div
75+
key={`menu-group-${groupIndex}-separator`}
76+
data-testid={`menu-group-${groupIndex}-separator`}
77+
>
78+
<MenuSeparator />
79+
</div>
80+
)}
81+
</div>
82+
);
83+
})}
8984
</Menu>
9085
</div>
9186
);

packages/compass-context-menu/src/types.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
export interface ContextMenuItemGroup {
2-
items: ContextMenuItem[];
3-
originListener: (event: MouseEvent) => void;
4-
}
1+
export type ContextMenuItemGroup = ContextMenuItem[];
52

63
export type ContextMenuState = {
74
isOpen: boolean;

packages/compass-context-menu/src/use-context-menu.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@ export function useContextMenu<
3636
*/
3737
registerItems(items: ContextMenuItem[]) {
3838
function listener(event: MouseEvent): void {
39-
appendContextMenuContent(event, {
40-
items,
41-
originListener: listener,
42-
});
39+
appendContextMenuContent(event, items);
4340
}
4441

4542
return (trigger: HTMLElement | null) => {

0 commit comments

Comments
 (0)