import { Fragment, useState, useEffect, useContext } from 'react' import { Button, CommandModal, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandShortcut, CommandList, } from '@janhq/uikit' import { MessageCircleIcon, SettingsIcon, DatabaseIcon, CpuIcon, BookOpenIcon, } from 'lucide-react' import ShortCut from '@/containers/Shortcut' import { FeatureToggleContext } from '@/context/FeatureToggle' import { MainViewState } from '@/constants/screens' import { useMainViewState } from '@/hooks/useMainViewState' export default function CommandSearch() { const { setMainViewState } = useMainViewState() const menus = [ { name: 'Getting Started', icon: , state: MainViewState.Welcome, }, { name: 'Chat', icon: ( ), state: MainViewState.Chat, }, { name: 'Explore Models', icon: , state: MainViewState.ExploreModels, }, { name: 'My Models', icon: , state: MainViewState.MyModels, }, { name: 'Settings', icon: , state: MainViewState.Setting, shortcut: , }, ] const [open, setOpen] = useState(false) useEffect(() => { const down = (e: KeyboardEvent) => { if (e.key === 'k' && (e.metaKey || e.ctrlKey)) { e.preventDefault() setOpen((open) => !open) } if (e.key === ',' && (e.metaKey || e.ctrlKey)) { e.preventDefault() setMainViewState(MainViewState.Setting) } } document.addEventListener('keydown', down) return () => document.removeEventListener('keydown', down) // eslint-disable-next-line react-hooks/exhaustive-deps }, []) return (
No results found. {menus.map((menu, i) => { return ( { setMainViewState(menu.state) setOpen(false) }} > {menu.icon} {menu.name} {menu.shortcut && ( {menu.shortcut} )} ) })}
) }