import { useEffect, useCallback } from "react" import { DropdownMenu, IconButton, toast, Toaster } from "@medusajs/ui" import { Keyboard } from "@medusajs/icons" function getOsShortcut() { const isMacOs = typeof navigator !== "undefined" ? navigator.userAgent.toLowerCase().indexOf("mac") !== 0 : true return isMacOs ? "⌘" : "Ctrl" } export default function DropdownMenuWithShortcuts() { const osShortcut = getOsShortcut() const handleEdit = useCallback(() => { toast.success("Success", { description: "Edit shortcut triggered!", }) }, []) const handleDelete = useCallback(() => { toast.success("Success", { description: "Delete shortcut triggered!", }) }, []) useEffect(() => { function handleKeydown(e: KeyboardEvent) { if (e.metaKey && e.key.toLowerCase() === "e") { e.preventDefault() handleEdit() } if (e.metaKey && e.key.toLowerCase() === "d") { e.preventDefault() handleDelete() } } window.addEventListener("keydown", handleKeydown) return () => window.removeEventListener("keydown", handleKeydown) }, [handleEdit, handleDelete]) return ( <> Edit {osShortcut}E Delete {osShortcut}D ) }