import React from "react"; import CommandPalette, { JsonStructure, filterItems, renderJsonStructure, useHandleOpenCommandPalette, } from "../src"; import { Meta, Story } from "@storybook/react"; import { useState } from "react"; const meta: Meta = { title: "CommandPalette", component: CommandPalette, parameters: { controls: { expanded: false } }, }; export default meta; const Template: Story = () => { const [selected, setSelected] = useState(0); const [isOpen, setIsOpen] = useState(true); const [search, setSearch] = useState(""); const [page, setPage] = useState<"root" | "positions">("root"); useHandleOpenCommandPalette(setIsOpen); const items: JsonStructure = [ { id: "welcome", items: [ { id: "welcome", children: , showType: false, keywords: ["Welcome"], onClick: () => { alert("welcome!"); }, }, ], }, { heading: "Home", id: "home", items: [ { children: "Home", icon: () => AF, id: "home", disabled: true, href: "#", renderLink: (props) => , }, { children: "Settings", icon: () => AF, id: "settings", disabled: true, }, { children: "Positions", icon: () => AF, closeOnSelect: false, keywords: ["jobs"], id: "positions", onClick: () => { setPage("positions"); setSearch(""); }, }, { children: "Candidates", icon: () => AF, id: "users", onClick: () => { alert("hj"); }, }, ], }, { heading: "External", id: "external", items: [ { href: "https://google.com", children: "Help", icon: () => AF, id: "support", target: "_blank", rel: "noopener noreferrer", }, ], }, { heading: "Extra", id: "extra", items: [ { children: "Privacy policy", icon: () => AF, id: "privacy", }, { children: "User agreement", icon: () => AF, id: "user-agreement", }, { children: "About", icon: () => AF, id: "about", }, { children: "Career", icon: () => AF, id: "career", }, ], }, ]; const rootItems = filterItems(items, search); return (

hej

} > {rootItems.length ? ( renderJsonStructure(rootItems) ) : ( )} { setPage("root"); }} > Nothing here ); }; 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

); }