diff --git a/src/App.tsx b/src/App.tsx index 70405e3..a17b464 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,6 +2,7 @@ import { Navigate, Route, Routes } from 'react-router-dom' import { AuthGate } from './auth/AuthGate' import { AppLayout } from './components/AppLayout' import { BrainPage } from './pages/Brain' +import { ProductionPage } from './pages/Production' import { InstructionPage } from './pages/Instruction' import { SchedulePage } from './pages/Schedule' import { ResultsPage } from './pages/Results' @@ -11,6 +12,7 @@ export default function App() { }> + } /> } /> } /> } /> @@ -21,7 +23,7 @@ export default function App() { } /> } /> } /> - } /> + } /> ) diff --git a/src/components/AppLayout.tsx b/src/components/AppLayout.tsx index 0d4af3f..fa967bc 100644 --- a/src/components/AppLayout.tsx +++ b/src/components/AppLayout.tsx @@ -7,13 +7,21 @@ import { workspaceCredits } from '../api/engine' import { Brand, Icon, type IconName } from './Icon' import { Toaster } from './Toast' -// Express Mode has four doors: feed the Brain, give an instruction, watch the schedule, collect results. -export const NAV: { to: string; label: Key; icon: IconName }[] = [ - { to: '/brain', label: 'nav.brain', icon: 'brain' }, - { to: '/instruction', label: 'nav.instruction', icon: 'spark' }, - { to: '/schedule', label: 'nav.schedule', icon: 'calendar' }, - { to: '/results', label: 'nav.results', icon: 'layers' }, +// The Production dashboard shows what Express is making; the four settings doors run it: +// feed the Brain, give an instruction, watch the schedule, collect results. +export const NAV_GROUPS: { label: Key; items: { to: string; label: Key; icon: IconName }[] }[] = [ + { label: 'nav.dashboard', items: [{ to: '/production', label: 'nav.production', icon: 'chart' }] }, + { + label: 'nav.settings', + items: [ + { to: '/brain', label: 'nav.brain', icon: 'brain' }, + { to: '/instruction', label: 'nav.instruction', icon: 'spark' }, + { to: '/schedule', label: 'nav.schedule', icon: 'calendar' }, + { to: '/results', label: 'nav.results', icon: 'layers' }, + ], + }, ] +export const NAV = NAV_GROUPS.flatMap(g => g.items) export function LanguageSwitch() { const lang = useLang() @@ -129,15 +137,17 @@ export function AppLayout() { return (