feat: move patient info to top header with React Context
Refactored patient display from separate ClientHeader to integrated EPDHeader. Architecture changes: - Implemented React Context pattern for patient data sharing - Created PatientContext with useState + setPatient for dynamic updates - Created useSetPatient hook for patient injection from nested layouts - Created EPDLayoutClient wrapper with PatientProvider - Context flow: EPDLayout → EPDLayoutClient → EPDHeader (consumer) UI improvements: - Removed "Mini-ECD" logo from header - Left-aligned patient info: name + status + John Doe indicator - Added geboortedatum (dd-mm-yyyy Dutch format) - Added BSN extraction from FHIR identifiers - Compact layout: Patient details | Timestamp | Actions ⋮ | Search - Actions dropdown with "Nieuwe rapportage" (expandable) Cleanup: - Deleted ClientHeader component (141 lines duplicate code) - Simplified PatientLayoutClient (only useSetPatient hook) - Single source of truth for patient display Result: Clean context-based architecture, improved UX, -141 LOC 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
import type { ReactNode } from 'react';
|
||||
import { EPDSidebar } from './components/epd-sidebar';
|
||||
import { EPDHeader } from './components/epd-header';
|
||||
import { EPDLayoutClient } from './components/epd-layout-client';
|
||||
import { getUser } from '@/lib/auth/server';
|
||||
|
||||
interface EPDLayoutProps {
|
||||
@@ -26,16 +26,10 @@ export default async function EPDLayout({ children }: EPDLayoutProps) {
|
||||
userName={user?.user_metadata?.full_name}
|
||||
/>
|
||||
|
||||
{/* Main Content Area */}
|
||||
<div className="flex-1 flex flex-col min-w-0">
|
||||
{/* Header - Fixed 60px height */}
|
||||
<EPDHeader />
|
||||
|
||||
{/* Page Content - Scrollable */}
|
||||
<main className="flex-1 overflow-auto bg-white">
|
||||
{children}
|
||||
</main>
|
||||
</div>
|
||||
{/* Main Content Area with PatientProvider */}
|
||||
<EPDLayoutClient>
|
||||
{children}
|
||||
</EPDLayoutClient>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user