"use client"; import { useEffect, useState } from 'react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { API_URL } from "@/config/constants"; type AdminMobileMenuProps = { onOpenTwoFactor?: () => void; }; const NAV_ITEMS = [ { href: '/admin', label: 'Kontrollpanel', match: (pathname: string) => pathname === '/admin' }, { href: '/admin/medlemskap', label: 'Medlemskap', match: (pathname: string) => pathname.startsWith('/admin/medlemskap') }, { href: '/admin/greenfee', label: 'Greenfee', match: (pathname: string) => pathname.startsWith('/admin/greenfee') }, { href: '/admin/vtg', label: 'VTG', match: (pathname: string) => pathname.startsWith('/admin/vtg') }, ]; export default function AdminMobileMenu({ onOpenTwoFactor }: AdminMobileMenuProps) { const pathname = usePathname(); const [isOpen, setIsOpen] = useState(false); useEffect(() => { if (!isOpen) return; const handleKeyDown = (event: KeyboardEvent) => { if (event.key === 'Escape') { setIsOpen(false); } }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, [isOpen]); const handleLogout = async () => { try { await fetch(`${API_URL}/auth/logout`, { method: 'POST', credentials: 'include' }); } finally { window.location.href = '/'; } }; return ( <>
Adminmeny