Replace flat app/route/agent lists with expandable tree navigation. Apps contain their routes and agents hierarchically. Add localStorage- backed starring with composite keys for uniqueness. Persist expand state to sessionStorage across page navigations. Add collapsible section headers, remove button on starred items, and parent app context labels. Create stub pages for /apps/:id, /agents/:id, /admin, /api-docs. Consolidate duplicated sidebar data into shared mock. Widen sidebar from 220px to 260px. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { Routes, Route } from 'react-router-dom'
|
|
import { Dashboard } from './pages/Dashboard/Dashboard'
|
|
import { Metrics } from './pages/Metrics/Metrics'
|
|
import { RouteDetail } from './pages/RouteDetail/RouteDetail'
|
|
import { ExchangeDetail } from './pages/ExchangeDetail/ExchangeDetail'
|
|
import { AgentHealth } from './pages/AgentHealth/AgentHealth'
|
|
import { Inventory } from './pages/Inventory/Inventory'
|
|
import { AppDetail } from './pages/AppDetail/AppDetail'
|
|
import { AgentDetail } from './pages/AgentDetail/AgentDetail'
|
|
import { Admin } from './pages/Admin/Admin'
|
|
import { ApiDocs } from './pages/ApiDocs/ApiDocs'
|
|
|
|
export default function App() {
|
|
return (
|
|
<Routes>
|
|
<Route path="/" element={<Dashboard />} />
|
|
<Route path="/metrics" element={<Metrics />} />
|
|
<Route path="/routes/:id" element={<RouteDetail />} />
|
|
<Route path="/exchanges/:id" element={<ExchangeDetail />} />
|
|
<Route path="/agents" element={<AgentHealth />} />
|
|
<Route path="/agents/:id" element={<AgentDetail />} />
|
|
<Route path="/apps/:id" element={<AppDetail />} />
|
|
<Route path="/admin" element={<Admin />} />
|
|
<Route path="/api-docs" element={<ApiDocs />} />
|
|
<Route path="/inventory" element={<Inventory />} />
|
|
</Routes>
|
|
)
|
|
}
|