import { useState, useRef, useEffect } from 'react' import type { Phase } from './types' import { BootSequence } from './components/BootSequence' import { ECGAnimation } from './components/ECGAnimation' import { LoginScreen } from './components/LoginScreen' import { DashboardLayout } from './components/DashboardLayout' import { AccessibilityProvider } from './contexts/AccessibilityContext' import { DetailPanelProvider } from './contexts/DetailPanelContext' 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('login') const cursorPositionRef = useRef<{ x: number; y: number } | null>(null) const skipToLogin = () => setPhase('login') return (
{/* Screen reader announcement for PMR phase */} {phase === 'pmr' && (
Patient Record for Charlwood, Andrew. Summary view.
)} {phase === 'boot' && ( setPhase('ecg')} onCursorPositionReady={(pos) => { cursorPositionRef.current = pos }} /> )} {phase === 'ecg' && ( setPhase('login')} startPosition={cursorPositionRef.current} /> )} {(phase === 'login' || phase === 'pmr') && ( )} {phase === 'login' && ( setPhase('pmr')} /> )} {(phase === 'boot' || phase === 'ecg') && ( )}
) } export default App