import { useState } from 'react'; import * as AccordionPrimitive from '@radix-ui/react-accordion'; import type { NavLink, NavProps } from '~/common'; import { Accordion, AccordionItem, AccordionContent } from '~/components/ui/Accordion'; import { buttonVariants } from '~/components/ui/Button'; import { TooltipAnchor, Button } from '~/components'; import { cn, removeFocusOutlines } from '~/utils'; import { useLocalize } from '~/hooks'; export default function Nav({ links, isCollapsed, resize, defaultActive }: NavProps) { const localize = useLocalize(); const [active, _setActive] = useState(defaultActive); const getVariant = (link: NavLink) => (link.id === active ? 'default' : 'ghost'); const setActive = (id: string) => { localStorage.setItem('side:active-panel', id + ''); _setActive(id); }; return (
{links.map((link, index) => { const variant = getVariant(link); return isCollapsed ? ( { if (link.onClick) { link.onClick(e); setActive(''); return; } setActive(link.id); resize && resize(25); }} > {link.title} } > ) : ( {link.Component && } ); })}
); }