import React from 'react' import { useNavigate } from '@tanstack/react-router' import { IconArrowRightDashed, IconChevronRight, IconDeviceLaptop, IconMoon, IconSun, } from '@tabler/icons-react' import { useSearch } from '@/context/search-context' import { useTheme } from '@/context/theme-context' import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, } from '@/components/ui/command' import { sidebarData } from './layout/data/sidebar-data' import { ScrollArea } from './ui/scroll-area' export function CommandMenu() { const navigate = useNavigate() const { setTheme } = useTheme() const { open, setOpen } = useSearch() const runCommand = React.useCallback( (command: () => unknown) => { setOpen(false) command() }, [setOpen] ) return ( No results found. {sidebarData.navGroups.map((group) => ( {group.items.map((navItem, i) => { if (navItem.url) return ( { runCommand(() => navigate({ to: navItem.url })) }} >
{navItem.title}
) return navItem.items?.map((subItem, i) => ( { runCommand(() => navigate({ to: subItem.url })) }} >
{navItem.title} {subItem.title}
)) })}
))} runCommand(() => setTheme('light'))}> Light runCommand(() => setTheme('dark'))}> Dark runCommand(() => setTheme('system'))}> System
) }