diff --git a/src/components/AppHeader.jsx b/src/components/AppHeader.jsx index 2e1e2ea..e1e8a90 100644 --- a/src/components/AppHeader.jsx +++ b/src/components/AppHeader.jsx @@ -15,7 +15,7 @@ export default function AppHeader({ zone = 'public', onSelectMenuItem }) { const [drawerExpanded, setDrawerExpanded] = useState(true); const [currentPage, setCurrentPage] = useState('Dashboard'); // track current page - const { user, logout } = useAuth(); + const { user } = useAuth(); const isPrivate = zone === 'private'; const isRestricted = zone === 'restricted'; @@ -31,23 +31,45 @@ export default function AppHeader({ zone = 'public', onSelectMenuItem }) { }; return ( - {/* LEFT SIDE: Current Page */} - - {currentPage} - + + {currentPage} + + + + {/* MIDDLE: Icon Buttons */} + + + Reload + + + Notifications + + {/* RIGHT SIDE: User Info */} {user && ( @@ -57,12 +79,11 @@ export default function AppHeader({ zone = 'public', onSelectMenuItem }) { )} - {/* Drawer (hidden off canvas, just keeps logic) */} + {/* Drawer (kept here for logic; reports expanded/collapsed to header) */} setDrawerExpanded(false)} - onSelect={handleMenuSelect} // patched + onSelect={handleMenuSelect} + onExpandedChange={(expanded) => setDrawerExpanded(expanded)} /> diff --git a/src/components/MenuDrawer.jsx b/src/components/MenuDrawer.jsx index 06d63ad..a1b822f 100644 --- a/src/components/MenuDrawer.jsx +++ b/src/components/MenuDrawer.jsx @@ -46,7 +46,7 @@ const menuOptions = { const OPEN_WIDTH = 300; const MINI_WIDTH = 72; -export default function MenuDrawer({ zone = 'public', open, onClose, onSelect }) { +export default function MenuDrawer({ zone = 'public', open, onClose, onSelect, onExpandedChange }) { const theme = useTheme(); const isMobile = useMediaQuery('(max-width:900px)'); const items = useMemo(() => menuOptions[zone] ?? [], [zone]); @@ -67,11 +67,12 @@ export default function MenuDrawer({ zone = 'public', open, onClose, onSelect }) // Interpret parent "open" prop: // - Mobile (temporary): open controls visibility // - Desktop (permanent): open=true => expanded, open=false => collapsed + // Inform parent (AppHeader) about expanded/collapsed state useEffect(() => { - if (!isMobile) { - setCollapsed(!open); - } - }, [open, isMobile]); + // On mobile the drawer is temporary; treat as expanded for header layout + const expanded = isMobile ? true : !collapsed; + onExpandedChange?.(expanded); + }, [collapsed, isMobile, onExpandedChange]); const paperWidth = isMobile ? OPEN_WIDTH : (collapsed ? MINI_WIDTH : OPEN_WIDTH); @@ -146,8 +147,8 @@ export default function MenuDrawer({ zone = 'public', open, onClose, onSelect }) )} {/* Items */} - {items.map(({ text, icon }, index) => { const isCatalog = text === 'Catalog'; - + // Special case: Catalog with submenu if (isCatalog) { return ( @@ -193,7 +194,7 @@ export default function MenuDrawer({ zone = 'public', open, onClose, onSelect }) > {icon} - + {!collapsed && ( <> - + {/* Submenu list */} {!collapsed && ( @@ -242,7 +243,7 @@ export default function MenuDrawer({ zone = 'public', open, onClose, onSelect }) ); } - + // Default items return (