import CommandPalette, { JsonStructure, getItemIndex, filterItems } from "../"; import { Meta, Story } from "@storybook/react"; import { useEffect, useState } from "react"; const meta: Meta = { title: "CommandPalette", component: CommandPalette, parameters: { controls: { expanded: false } }, }; export default meta; const Template: Story = () => { const [search, setSearch] = useState(""); const [isOpen, setIsOpen] = useState(true); useEffect(() => { function handleKeyDown(e: KeyboardEvent) { if (e.metaKey && e.key === "k") { e.preventDefault(); e.stopPropagation(); setIsOpen((currentValue) => { return !currentValue; }); } } document.addEventListener("keydown", handleKeyDown); return () => { document.removeEventListener("keydown", handleKeyDown); }; }, []); const items: JsonStructure = [ { id: "welcome", items: [ { id: "welcome", children: , showType: false, onClick: () => { alert("welcome!"); }, }, ], }, { heading: "Home", id: "home", items: [ { children: "Home", icon: "HomeIcon", id: "home", disabled: true, href: "#", renderLink: (props) => , }, { children: "Settings", icon: "CogIcon", id: "settings", disabled: true, }, { children: "Positions", icon: "BriefcaseIcon", id: "positions", href: "#", }, { children: "Candidates", icon: "UsersIcon", id: "users", href: "#", }, ], }, { heading: "External", id: "external", items: [ { href: "https://google.com", children: "Help", icon: "SupportIcon", id: "support", target: "_blank", rel: "noopener noreferrer", }, ], }, ]; const filteredItems = filterItems(items, search); return (
{filteredItems.length ? ( filteredItems.map((list) => { return ( {list.items.map(({ id, ...rest }) => ( ))} ); }) ) : ( { alert(`Searching for ${search}...`); }} /> )}
); }; export const Default = Template.bind({}); Default.args = {}; function Welcome() { return (

Welcome 👋

We're really glad you found this! Here you can quickly get to what you want to do

); }