import { Fragment, useState, useEffect } from 'react' import { CommandModal, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandShortcut, CommandList, } from '@janhq/uikit' import { MessageCircleIcon, SettingsIcon, LayoutGridIcon, MonitorIcon, } from 'lucide-react' import ShortCut from '@/containers/Shortcut' import { MainViewState } from '@/constants/screens' import { useMainViewState } from '@/hooks/useMainViewState' export default function CommandSearch() { const { setMainViewState } = useMainViewState() const [open, setOpen] = useState(false) const menus = [ { name: 'Chat', icon: ( ), state: MainViewState.Thread, }, { name: 'Hub', icon: , state: MainViewState.Hub, }, { name: 'System Monitor', icon: , state: MainViewState.SystemMonitor, }, { name: 'Settings', icon: , state: MainViewState.Settings, shortcut: , }, ] 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.Settings) } } document.addEventListener('keydown', down) return () => document.removeEventListener('keydown', down) // eslint-disable-next-line react-hooks/exhaustive-deps }, []) return ( {/* Temporary disable view search input until we have proper UI placement, but we keep function cmd + K for showing list page */} {/*
*/} No results found. {menus.map((menu, i) => { return ( { setMainViewState(menu.state) setOpen(false) }} > {menu.icon} {menu.name} {menu.shortcut && ( {menu.shortcut} )} ) })}
) }