"use client"; import { BugIcon, ChevronsUpDown, GlobeIcon, InfoIcon, MailIcon, Settings2Icon, SettingsIcon, } from "lucide-react"; import { useEffect, useState } from "react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar, } from "@/components/ui/sidebar"; import { useI18n } from "@/core/i18n/hooks"; import { GithubIcon } from "./github-icon"; import { SettingsDialog } from "./settings"; function NavMenuButtonContent({ isSidebarOpen, t, }: { isSidebarOpen: boolean; t: ReturnType["t"]; }) { return isSidebarOpen ? (
{t.workspace.settingsAndMore}
) : (
); } export function WorkspaceNavMenu() { const [settingsOpen, setSettingsOpen] = useState(false); const [settingsDefaultSection, setSettingsDefaultSection] = useState< "appearance" | "memory" | "tools" | "skills" | "notification" | "about" >("appearance"); const [mounted, setMounted] = useState(false); const { open: isSidebarOpen } = useSidebar(); const { t } = useI18n(); useEffect(() => { setMounted(true); }, []); return ( <> {mounted ? ( { setSettingsDefaultSection("appearance"); setSettingsOpen(true); }} > {t.common.settings} {t.workspace.officialWebsite} {t.workspace.visitGithub} {t.workspace.reportIssue} {t.workspace.contactUs} { setSettingsDefaultSection("about"); setSettingsOpen(true); }} > {t.workspace.about} ) : ( )} ); }