import { useEffect, useRef, useState } from 'react' import { Link, useRouter } from '@tanstack/react-router' import { authClient } from '#/lib/auth-client' type StaffUser = { name: string; role?: string | null } type SectionLink = { label: string; hash: string } type Props = { staffUser?: StaffUser | null sectionLinks?: SectionLink[] } function MenuIcon() { return ( ) } export function AppSidebar({ staffUser, sectionLinks }: Props) { const router = useRouter() const [isOpen, setIsOpen] = useState(false) const navRef = useRef(null) useEffect(() => { if (!isOpen) return function handleOutsideClick(event: MouseEvent) { if (navRef.current && !navRef.current.contains(event.target as Node)) { setIsOpen(false) } } function handleKeyDown(event: KeyboardEvent) { if (event.key === 'Escape') setIsOpen(false) } document.addEventListener('mousedown', handleOutsideClick) document.addEventListener('keydown', handleKeyDown) return () => { document.removeEventListener('mousedown', handleOutsideClick) document.removeEventListener('keydown', handleKeyDown) } }, [isOpen]) async function handleLogout() { await authClient.signOut() await router.navigate({ to: '/staff/login' }) await router.invalidate() } return ( ) }