US-008: Restructure DashboardLayout with SubNav, new tile order, and DetailPanel

- Wrap DashboardLayout with DetailPanelProvider in App.tsx
- Import and render DetailPanel component alongside CommandPalette
- Reorder tiles: PatientSummary (full) → LatestResults (half) + Projects (half) → CoreSkills (full) → LastConsultation (full) → CareerActivity (full) → Education (full)
- Update ProjectsTile from full-width to half-width (remove full prop)
- Update CoreSkillsTile from half-width to full-width (add full prop)
- SubNav already renders between TopBar and content
- Content area marginTop already accounts for both TopBar and SubNav heights
- All tiles already have data-tile-id attributes for SubNav scrolling

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-13 23:14:58 +00:00
parent 6c26518806
commit b18746ecee
4 changed files with 16 additions and 7 deletions
+6 -1
View File
@@ -5,6 +5,7 @@ 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)
@@ -76,7 +77,11 @@ function App() {
<LoginScreen onComplete={() => setPhase('pmr')} />
)}
{phase === 'pmr' && <DashboardLayout />}
{phase === 'pmr' && (
<DetailPanelProvider>
<DashboardLayout />
</DetailPanelProvider>
)}
{(phase === 'boot' || phase === 'ecg') && (
<SkipButton onSkip={skipToLogin} />