c4eb598a3a
Il ruolo `campus` diventa `piattaforme` e non apre più solo la sezione Biohacking: copre tutte le aree riservate, con migrazione guardata sugli utenti esistenti. Nell'header la vecchia voce Biohacking lascia il posto a un menu Piattaforme con i due link, visibile solo a chi ha il ruolo, e /piattaforme diventa la pagina di atterraggio. Stress Index è portata dentro il sito: le nove viste dell'area professionisti diventano pagine Astro sotto /piattaforme/stress-index, con lo stile del sito al posto del design system del prototipo. React resta solo dove serve davvero — grafici recharts e scheda cliente — il resto è Astro con un filo di JS. I dati sono ancora quelli dimostrativi, raccolti in lib/stress-index/data.ts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
22 lines
858 B
Plaintext
22 lines
858 B
Plaintext
---
|
|
// Scheda del singolo cliente. La pagina raccoglie i dati e li passa all'isola React che
|
|
// gestisce tab e interazioni.
|
|
import StressIndex from '../../../../layouts/StressIndex.astro';
|
|
import ClientDetail from '../../../../components/stress-index/ClientDetail';
|
|
import { findClient, measurementsByClient, alerts, notes } from '../../../../lib/stress-index/data';
|
|
export const prerender = false;
|
|
|
|
const { id } = Astro.params;
|
|
const client = findClient(id ?? '');
|
|
if (!client) return Astro.redirect('/piattaforme/stress-index/clienti');
|
|
---
|
|
<StressIndex title={client.name} crumbs={['Clienti', client.name]}>
|
|
<ClientDetail
|
|
client:load
|
|
client={client}
|
|
measurements={measurementsByClient[client.id] ?? []}
|
|
alerts={alerts.filter((a) => a.clientId === client.id)}
|
|
notes={notes.filter((n) => n.clientId === client.id)}
|
|
/>
|
|
</StressIndex>
|