import { Key } from 'react'; import Link from 'next/link'; import { Sidebar, SidebarSection, SidebarItem, SidebarHeader, Row, SidebarProps, ThemeButton, } from '@umami/react-zen'; import { Globe, LinkIcon, Grid2x2, PanelLeft } from '@/components/icons'; import { Logo } from '@/components/svg'; import { useMessages, useNavigation, useGlobalState } from '@/components/hooks'; import { NavButton } from '@/components/input/NavButton'; import { PanelButton } from '@/components/input/PanelButton'; import { LanguageButton } from '@/components/input/LanguageButton'; export function SideNav(props: SidebarProps) { const { formatMessage, labels } = useMessages(); const { pathname, renderUrl, websiteId, router } = useNavigation(); const [isCollapsed, setIsCollapsed] = useGlobalState('sidenav-collapsed'); const hasNav = !!(websiteId || pathname.startsWith('/admin') || pathname.includes('/settings')); const links = [ { id: 'websites', label: formatMessage(labels.websites), path: '/websites', icon: , }, { id: 'links', label: formatMessage(labels.links), path: '/links', icon: , }, { id: 'pixels', label: formatMessage(labels.pixels), path: '/pixels', icon: , }, ]; const handleSelect = (id: Key) => { router.push(id === 'user' ? '/websites' : `/teams/${id}/websites`); }; return ( setIsCollapsed(false)}> : } style={{ maxHeight: 40 }} > {!isCollapsed && !hasNav && } {links.map(({ id, path, label, icon }) => { return ( ); })} ); }