import { useState, useEffect } from 'react' import type { Phase } from './types' import { BootSequence } from './components/BootSequence' import { LoginScreen } from './components/LoginScreen' import { DashboardLayout } from './components/DashboardLayout' import { AccessibilityProvider } from './contexts/AccessibilityContext' import { DetailPanelProvider } from './contexts/DetailPanelContext' import { initModel } from './lib/embedding-model' function SkipButton({ onSkip }: { onSkip: () => void }) { const [visible, setVisible] = useState(false) useEffect(() => { const timer = setTimeout(() => setVisible(true), 1500) return () => clearTimeout(timer) }, []) return ( ) } function App() { const [phase, setPhase] = useState(() => { if (typeof window !== 'undefined' && sessionStorage.getItem('portfolio-visited')) { return 'pmr' } return 'boot' }) useEffect(() => { initModel() }, []) useEffect(() => { if (phase === 'pmr') { sessionStorage.setItem('portfolio-visited', '1') } }, [phase]) const skipToDashboard = () => setPhase('pmr') return (
{/* Screen reader announcement for PMR phase */} {phase === 'pmr' && (
Patient Record for Charlwood, Andrew. Summary view.
)} {phase === 'boot' && ( setPhase('login')} /> )} {(phase === 'login' || phase === 'pmr') && ( )} {phase === 'login' && ( setPhase('pmr')} /> )} {(phase === 'boot' || phase === 'login') && ( )}
) } export default App