From 4c5e9e93a92b46a62e571268ea578f46203dfcf6 Mon Sep 17 00:00:00 2001 From: Pavithra Kodmad Date: Wed, 6 Dec 2023 18:53:17 +1100 Subject: [PATCH] Add a storybook to simulate opening action menu using a shortcut --- .../ActionMenu.examples.stories.tsx | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/src/ActionMenu/ActionMenu.examples.stories.tsx b/src/ActionMenu/ActionMenu.examples.stories.tsx index 4b8a40e2eb5..d19f490e14d 100644 --- a/src/ActionMenu/ActionMenu.examples.stories.tsx +++ b/src/ActionMenu/ActionMenu.examples.stories.tsx @@ -156,6 +156,65 @@ export const ControlledMenu = () => { ) } +export const ShortcutMenu = () => { + React.useEffect(() => { + const onKeyDown = (event: KeyboardEvent) => { + if (event.shiftKey && (event.key === 'c' || event.key === 'C')) { + setOpen(true) + } + } + window.addEventListener('keydown', onKeyDown) + return () => window.removeEventListener('keydown', onKeyDown) + }, []) + + const [open, setOpen] = React.useState(false) + const triggerRef = React.useRef(null) + + return ( + <> +

Shortcut Menu

+

External Open State: {open ? 'Open' : 'Closed'}

+

Press Shift+C to open the menu

+
+ + {/** + * Even though the state is controlled externally, + * we can pass an Anchor for the menu to "anchor to" + */} + + Anchor + + + + Copy link + ⌘C + + + Quote reply + ⌘Q + + + Edit comment + ⌘E + + + + Delete file + ⌘D + + + + + + ) +} + export const CustomAnchor = () => (