import { useEffect, useRef } from 'react'; import { useAuth } from '../contexts/AuthContext.jsx'; import './NavDrawer.css'; const NAV_ICON = { messages: , groupmessages: , schedules: , users: , groups: , branding: , hostpanel: , settings: , }; export default function NavDrawer({ open, onClose, onMessages, onGroupMessages, onSchedule, onScheduleManager, onBranding, onSettings, onUsers, onGroupManager, onHostPanel, onAddChild, features = {}, currentPage = 'chat', isMobile = false, unreadMessages = false, unreadGroupMessages = false }) { const { user } = useAuth(); const drawerRef = useRef(null); const isAdmin = user?.role === 'admin'; const userGroupIds = features.userGroupMemberships || []; const canAccessTools = isAdmin || user?.role === 'manager' || (features.teamToolManagers || []).some(gid => userGroupIds.includes(gid)); const hasUserGroups = userGroupIds.length > 0; const showAddChild = (features.loginType === 'guardian_only' || features.loginType === 'mixed_age') && features.inGuardiansGroup; useEffect(() => { if (!open) return; const h = e => { if (drawerRef.current && !drawerRef.current.contains(e.target)) onClose(); }; document.addEventListener('mousedown', h); return () => document.removeEventListener('mousedown', h); }, [open, onClose]); useEffect(() => { if (!open) return; const h = e => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', h); return () => window.removeEventListener('keydown', h); }, [open, onClose]); const item = (icon, label, onClick, opts = {}) => { const { active, disabled, badge, dot } = opts; return ( ); }; return ( <>