Skip to content

Commit 94994d1

Browse files
committed
feat(MenuTrigger): pass state to trigger * 2
1 parent a904ddd commit 94994d1

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

src/components/pickers/Menu/Menu.stories.tsx

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
AlertDialog,
1919
DialogContainer,
2020
TooltipProvider,
21+
DirectionIcon,
2122
} from '../../../index';
2223
import { baseProps } from '../../../stories/lists/baseProps';
2324
import { MoreIcon, PlusIcon } from '../../../icons';
@@ -403,3 +404,41 @@ export const ItemWithTooltip = (props) => {
403404
//
404405
// await waitFor(() => expect(canvas.getByRole('tooltip')).toBeInTheDocument());
405406
// };
407+
408+
export const WithTriggerState = ({ ...props }) => {
409+
const menu = (
410+
<Menu id="menu" {...props} width="220px">
411+
<Menu.Item key="red" postfix="Ctr+C">
412+
Copy
413+
</Menu.Item>
414+
<Menu.Item key="orange" postfix="Ctr+V">
415+
Paste
416+
</Menu.Item>
417+
<Menu.Item key="yellow" postfix="Ctr+X">
418+
Cut
419+
</Menu.Item>
420+
</Menu>
421+
);
422+
423+
return (
424+
<Space
425+
gap="10x"
426+
placeContent="start start"
427+
placeItems="start"
428+
height="400px"
429+
>
430+
<MenuTrigger>
431+
{({ isOpen }) => (
432+
<Button
433+
size="small"
434+
rightIcon={<DirectionIcon to={isOpen ? 'top' : 'bottom'} />}
435+
aria-label="Open Context Menu"
436+
>
437+
Menu
438+
</Button>
439+
)}
440+
{menu}
441+
</MenuTrigger>
442+
</Space>
443+
);
444+
};

src/components/pickers/Menu/MenuTrigger.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { forwardRef, Fragment, useRef, ReactElement } from 'react';
1+
import { forwardRef, Fragment, useRef, ReactElement } from 'react';
22
import { AriaMenuTriggerProps } from 'react-aria';
33
import { useDOMRef, useIsMobileDevice } from '@react-spectrum/utils';
44
import {
@@ -48,7 +48,7 @@ function MenuTrigger(props: CubeMenuTriggerProps, ref: DOMRef<HTMLElement>) {
4848
isDisabled,
4949
} = props;
5050

51-
let [menuTrigger, menu] = React.Children.toArray(children);
51+
let [menuTrigger, menu] = children;
5252
const state: MenuTriggerState = useMenuTriggerState(props);
5353

5454
if (typeof menuTrigger === 'function') {

0 commit comments

Comments
 (0)