diff --git a/src/components/client-dashboard.tsx b/src/components/client-dashboard.tsx new file mode 100644 index 0000000..c5b7390 --- /dev/null +++ b/src/components/client-dashboard.tsx @@ -0,0 +1,99 @@ +import type { ClientView } from '@/lib/client-view'; +import { Progress } from '@/components/ui/progress'; +import { PhaseTimeline } from './phase-timeline'; +import { PaymentStatus } from './payment-status'; +import { DocumentsSection } from './documents-section'; +import { NotesSection } from './notes-section'; + +interface ClientDashboardProps { + view: ClientView; +} + +export function ClientDashboard({ view }: ClientDashboardProps) { + return ( +
+ {/* Header: logo iamcavalli (piccolo) + brand_name cliente (prominente) */} +
+
+
+ {/* iamcavalli — piccolo, angolo sinistro */} + + iamcavalli + + + {/* Brand name cliente — prominente, centrato */} +

+ {view.client.brand_name} +

+ + {/* Spacer bilanciatore */} +
+
+
+
+ + {/* Barra progresso globale */} +
+
+
+

Avanzamento Progetto

+

{view.global_progress_pct}%

+
+ +
+
+ + {/* Contenuto principale */} +
+ {/* Brief progetto */} + {view.client.brief && ( +
+

+ {view.client.brief} +

+
+ )} + + {/* Timeline fasi */} +
+

Fasi del Progetto

+ +
+ + {/* Stato pagamenti — sempre visibile (D-10) */} +
+

Pagamenti

+ +
+ + {/* Documenti — solo se presenti */} + {view.documents.length > 0 && ( +
+

Documenti & File

+ +
+ )} + + {/* Note / Log decisioni — solo se presenti */} + {view.notes.length > 0 && ( +
+

Note & Decisioni

+ +
+ )} +
+ + {/* Footer */} + +
+ ); +} \ No newline at end of file