// src/renderer/components/AppLayout.tsx import { useState } from 'react' import { Box, Drawer, List, ListItemButton, ListItemIcon, ListItemText, Divider, Typography, Chip } from '@mui/material' import DashboardIcon from '@mui/icons-material/Dashboard' import HistoryIcon from '@mui/icons-material/History' import MenuBookIcon from '@mui/icons-material/MenuBook' import SettingsIcon from '@mui/icons-material/Settings' import { DashboardPage } from '../pages/DashboardPage' import { SettingsModal } from './SettingsModal' import { StatusBar } from './StatusBar' type Route = 'dashboard' | 'history' | 'dictionary' const DRAWER_WIDTH = 240 const NAV_ITEMS: Array<{ route: Route; label: string; icon: React.ReactElement }> = [ { route: 'dashboard', label: 'Dashboard', icon: }, { route: 'history', label: 'History', icon: }, { route: 'dictionary', label: 'Dictionary', icon: } ] export function AppLayout(): React.ReactElement { const [currentRoute, setCurrentRoute] = useState('dashboard') const [settingsOpen, setSettingsOpen] = useState(false) return ( {/* Sidebar Drawer */} {/* Header */} D3RO Voice {/* Navigation */} {NAV_ITEMS.map((item) => ( setCurrentRoute(item.route)} sx={{ my: 0.5 }} > {item.icon} ))} {/* Bottom */} setSettingsOpen(true)}> {/* Content Area */} {currentRoute === 'dashboard' && } {currentRoute === 'history' && ( History (Phase 5) )} {currentRoute === 'dictionary' && ( Dictionary (Phase 5) )} setSettingsOpen(false)} /> ) }