"use client"; import { Icon } from "@iconify/react"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; import { CommandPalette, CommandPaletteContent, CommandPaletteEmpty, CommandPaletteFooter, CommandPaletteGroup, CommandPaletteInput, CommandPaletteItem, CommandPaletteList, CommandPaletteSeparator, } from "poyraz-ui/molecules"; import { COMMAND_PALETTE_GROUPS, type CommandPaletteItem as PaletteItem, } from "@/lib/command-palette-links"; import { useKeyboardShortcutLabel } from "@/lib/use-keyboard-shortcut-label"; type SearchCommandProps = { open: boolean; onOpenChange: (open: boolean) => void; }; export function SearchCommand({ open, onOpenChange }: SearchCommandProps) { const router = useRouter(); const shortcut = useKeyboardShortcutLabel(); useEffect(() => { const onKeyDown = (event: KeyboardEvent) => { const isShortcut = (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "k"; if (!isShortcut) return; event.preventDefault(); onOpenChange(!open); }; window.addEventListener("keydown", onKeyDown); return () => window.removeEventListener("keydown", onKeyDown); }, [open, onOpenChange]); const handleCommandSelect = (item: PaletteItem) => { onOpenChange(false); if (item.external) { window.open(item.href, "_blank", "noopener,noreferrer"); return; } router.push(item.href); }; return ( No results found. {COMMAND_PALETTE_GROUPS.map((group, index) => (
{index > 0 && } {group.items.map((item) => ( } onClick={() => handleCommandSelect(item)} className="cursor-pointer" > {item.label} ))}
))}
Press {shortcut} to open quickly
); }