/** Tab 5: render the nextgen architecture decision documents. */ import { useEffect, useState } from 'react'; import Alert from '@mui/material/Alert'; import Box from '@mui/material/Box'; import Paper from '@mui/material/Paper'; import Tab from '@mui/material/Tab'; import Tabs from '@mui/material/Tabs'; import Typography from '@mui/material/Typography'; import * as api from '../../services/nextgen'; import type { ArchitectureDocs } from '../../types/nextgen'; import Markdown from './Markdown'; import { PANEL_SX } from './common'; const DOC_LABELS: Record = { comparison: 'Three-Way Comparison', adr: 'ADR', rollout: 'Rollout Plan', worldmodel: 'World-Model Comparison', }; export default function ArchitectureTab() { const [docs, setDocs] = useState(null); const [active, setActive] = useState('comparison'); const [error, setError] = useState(''); useEffect(() => { api.getArchitectureDocs().then(setDocs).catch((e) => setError(String(e.message ?? e))); }, []); if (error) return {error}; if (!docs) return Loading architecture docs…; const keys = Object.keys(docs.docs); const current = docs.docs[active]; return ( setActive(v)} sx={{ mb: 1.5, minHeight: 34, '& .MuiTab-root': { minHeight: 34, fontSize: 12, textTransform: 'none' } }} > {keys.map((k) => ( ))} {current?.file} {current?.content ? ( ) : ( Document not found on disk. )} ); }