'use client'; import { usePathname, useRouter } from 'next/navigation'; import { useEffect } from 'react'; import { useAuth } from './auth-context'; import { PortalNav } from '../_components/portal-nav'; import { Search, Users, MessageSquare, FileText, Settings, Bot, LayoutDashboard, Building2, Server, Inbox, } from 'lucide-react'; // Paths that render their own full-screen layout (no sidebar) const FULLSCREEN_PATHS = ['/', '/login', '/member-login', '/onboard', '/admin/login', '/org/login', '/org', '/admin', '/my']; const CHAPTER_NAV = [ { href: '/search', label: 'Search', icon: }, { href: '/groups', label: 'Groups & Routes', icon: }, { href: '/messages/pending', label: 'Pending', icon: }, { href: '/drafts', label: 'AI Drafts', icon: }, { href: '/settings/rules', label: 'Rules', icon: }, { href: '/settings/bot', label: 'Bot', icon: }, ]; export function Sidebar() { const { admin, loading, logout } = useAuth(); const pathname = usePathname(); const router = useRouter(); const isFullscreen = FULLSCREEN_PATHS.some((p) => p === '/' ? pathname === '/' : pathname === p || pathname.startsWith(p + '/'), ); useEffect(() => { if (loading || isFullscreen) return; if (!admin) router.replace(`/login?next=${encodeURIComponent(pathname)}`); }, [loading, admin, pathname, router, isFullscreen]); if (isFullscreen) return null; if (loading) { return (
); } if (!admin) return null; return ( { void logout(); router.replace('/login'); }} /> ); }