import React from "react"; import { SidebarSection } from "@components/UI/Sidebar/SidebarSection.tsx"; import { Subtle } from "@components/UI/Typography/Subtle.tsx"; import { useDevice } from "@core/stores/deviceStore.ts"; import type { Page } from "@core/stores/deviceStore.ts"; import { Spinner } from "@components/UI/Spinner.tsx"; import { Avatar } from "@components/UI/Avatar.tsx"; import { CircleChevronLeft, CpuIcon, LayersIcon, type LucideIcon, MapIcon, MessageSquareIcon, PenLine, SearchIcon, SettingsIcon, UsersIcon, ZapIcon, } from "lucide-react"; import { cn } from "@core/utils/cn.ts"; import { useSidebar } from "@core/stores/sidebarStore.tsx"; import ThemeSwitcher from "@components/ThemeSwitcher.tsx"; import { useAppStore } from "@core/stores/appStore.ts"; import BatteryStatus from "@components/BatteryStatus.tsx"; import { SidebarButton } from "@components/UI/Sidebar/SidebarButton.tsx"; export interface SidebarProps { children?: React.ReactNode; } interface NavLink { name: string; icon: LucideIcon; page: Page; } const CollapseToggleButton = () => { const { isCollapsed, toggleSidebar } = useSidebar(); const buttonLabel = isCollapsed ? "Open sidebar" : "Close sidebar"; return ( ); } export const Sidebar = ({ children }: SidebarProps) => { const { hardware, getNode, getNodesLength, metadata, activePage, setActivePage, setDialogOpen } = useDevice(); const { setCommandPaletteOpen } = useAppStore(); const myNode = getNode(hardware.myNodeNum); const { isCollapsed } = useSidebar(); const myMetadata = metadata.get(0); const pages: NavLink[] = [ { name: "Messages", icon: MessageSquareIcon, page: "messages" }, { name: "Map", icon: MapIcon, page: "map" }, { name: "Config", icon: SettingsIcon, page: "config" }, { name: "Channels", icon: LayersIcon, page: "channels" }, { name: `Nodes (${Math.max(getNodesLength() - 1, 0)})`, icon: UsersIcon, page: "nodes", }, ]; return (
{myNode.user?.longName}