import * as React from 'react'; import { Box, Drawer, AppBar, Toolbar, List, Typography, Divider, ListItem, ListItemButton, ListItemIcon, ListItemText, CssBaseline, IconButton } from '@mui/material'; import TableViewIcon from '@mui/icons-material/TableView'; import DashboardIcon from '@mui/icons-material/Dashboard'; import LogoutIcon from '@mui/icons-material/Logout'; import { ResourceConfig } from '../types/config'; import { useLocation, useNavigate } from 'react-router-dom'; const drawerWidth = 240; interface AdminLayoutProps { children: React.ReactNode; onSelectResource: (resourceName: string | null) => void; onLogout: () => void; username?: string; resources: ResourceConfig[]; } export default function AdminLayout({ children, onSelectResource, onLogout, username, resources, }: AdminLayoutProps) { const location = useLocation(); const navigate = useNavigate(); const activeResourceName = location.pathname.split('/')[1] || null; return ( theme.zIndex.drawer + 1 }}> Admin Panel {username} navigate('/')} > {resources.map((res) => ( onSelectResource(res.name)} > ))} {children} ); }