Calendario: il 19 e il 20 settembre non sono un buco, sono un evento e una chiusura

Quei due giorni non stanno in nessuna delle due griglie perche' non hanno class:
il 19 c'e' la presentazione della nuova apertura, il 20 si sta chiusi. Scritto
come avviso con la sua finestra, il vuoto smette di sembrare una trascrizione
incompleta e diventa un'informazione.

Gli avvisi compaiono in cima al popup e in fondo al PDF - e' il file che gira su
WhatsApp, e chi lo riceve non ha la pagina davanti. Spariscono da soli quando
sono passati: un avviso scaduto dice che il centro e' chiuso in un giorno gia'
trascorso, e chi legge non sa piu' se valga per quest'anno o per il prossimo.

Lo spazio riservato in fondo alla pagina cresce con gli avvisi, altrimenti la
griglia si allunga fino a spingerli su una seconda pagina.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-17 17:07:24 +02:00
parent 928de34c55
commit d03c62641e
6 changed files with 123 additions and 18 deletions
+43
View File
@@ -103,6 +103,49 @@ export const calendari: Calendario[] = [
},
];
/**
* Giornate che non stanno in nessuna griglia: eventi e chiusure.
*
* Il 19 e il 20 settembre non compaiono in nessuno dei due fogli, e la ragione non è una
* dimenticanza — il sabato c'è la presentazione della nuova apertura e la domenica si sta
* chiusi (detto da Adriano il 17/08/2026). Scritto qui, quel vuoto smette di sembrare un
* errore di trascrizione e diventa un'informazione per chi legge gli orari.
*/
export interface AvvisoCalendario {
id: string;
/** `null` = visibile da subito. */
from: string | null;
/** Ultimo istante in cui ha senso mostrarlo: dopo, sparisce da solo. */
to: string;
quando: string;
testo: string;
}
export const avvisi: AvvisoCalendario[] = [
{
id: 'presentazione-19-settembre',
from: null,
to: '2026-09-19T23:59:59+02:00',
quando: 'Sabato 19 settembre',
testo: 'Presentazione della nuova apertura: nessuna class in programma.',
},
{
id: 'chiusura-20-settembre',
from: null,
to: '2026-09-20T23:59:59+02:00',
quando: 'Domenica 20 settembre',
testo: 'Chiuso.',
},
];
/** Gli avvisi ancora validi, in ordine di scadenza: i più imminenti per primi. */
export function avvisiAttivi(now: Date, list: AvvisoCalendario[] = avvisi): AvvisoCalendario[] {
const t = now.getTime();
return list
.filter((a) => (a.from === null || t >= Date.parse(a.from)) && t <= Date.parse(a.to))
.sort((x, y) => Date.parse(x.to) - Date.parse(y.to));
}
/** Servizi dalla cui pagina si apre il calendario della sala. */
export const SERVIZI_CON_CALENDARIO = ['performance-class', 'holistic-class'];