import { BookIcon, DatabaseBackupIcon, LayoutDashboard, LogsIcon, MailIcon, Server, SettingsIcon, UsersIcon, } from "lucide-react" import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, } from "@/components/ui/command" import { useEffect } from "react" import { useStore } from "@nanostores/react" import { $systems } from "@/lib/stores" import { getHostDisplayValue, isAdmin } from "@/lib/utils" import { $router, basePath, navigate } from "./router" import { Trans, t } from "@lingui/macro" import { getPagePath } from "@nanostores/router" export default function CommandPalette({ open, setOpen }: { open: boolean; setOpen: (open: boolean) => void }) { const systems = useStore($systems) useEffect(() => { const down = (e: KeyboardEvent) => { if (e.key === "k" && (e.metaKey || e.ctrlKey)) { e.preventDefault() setOpen(!open) } } document.addEventListener("keydown", down) return () => document.removeEventListener("keydown", down) }, [open, setOpen]) return ( No results found. {systems.length > 0 && ( <> {systems.map((system) => ( { navigate(getPagePath($router, "system", { name: system.name })) setOpen(false) }} > {system.name} {getHostDisplayValue(system)} ))} )} { navigate(basePath) setOpen(false) }} > Dashboard Page { navigate(getPagePath($router, "settings", { name: "general" })) setOpen(false) }} > Settings Settings { navigate(getPagePath($router, "settings", { name: "notifications" })) setOpen(false) }} > Notifications Settings { window.location.href = "https://beszel.dev/guide/what-is-beszel" }} > Documentation beszel.dev {isAdmin() && ( <> { setOpen(false) window.open("/_/", "_blank") }} > Users Admin { setOpen(false) window.open("/_/#/logs", "_blank") }} > Logs Admin { setOpen(false) window.open("/_/#/settings/backups", "_blank") }} > Backups Admin { setOpen(false) window.open("/_/#/settings/mail", "_blank") }} > SMTP settings Admin )} ) }