feat(timeout): proietta spot video sul display durante il time out

Aggiunge il flag `timeout` nello stato e l'action `toggleTimeout`: dal
controller il pulsante Time Out commuta la modalità e il display copre il
tabellone con i video .mp4 della cartella `spot/` (non versionata).

- un solo video → loop; più video → sequenza alfabetica con ritorno al primo;
  cartella vuota/assente → overlay "TIME OUT".
- `src/spot-utils.js` (listSpotVideos) elenca i .mp4; endpoint `/spot/list`
  + file statici `/spot/<file>.mp4` serviti sia in prod (server.js) sia in
  dev (vite-plugin-websocket.js).
- il display avvia i video con audio e ripiega su muto se il browser blocca
  l'autoplay con suono.
- il controller resta operativo ma evidenzia la modalità con banner e
  pulsante arancione pulsante, in entrambi i layout (mobile ed esteso).
This commit is contained in:
2026-06-21 18:35:08 +02:00
parent ffba5b368d
commit fb4b14b282
7 changed files with 160 additions and 1 deletions
+6
View File
@@ -21,6 +21,7 @@ export function createInitialState() {
order: true,
visuForm: false,
visuStriscia: true,
timeout: false,
modalitaPartita: "3/5",
sp: {
striscia: [{ serv: 'h', ris: '', vinc: null }],
@@ -164,6 +165,11 @@ export function applyAction(state, action) {
break
}
case "toggleTimeout": {
s.timeout = !s.timeout
break
}
case "setNomi": {
if (action.home !== undefined) s.sp.nomi.home = action.home
if (action.guest !== undefined) s.sp.nomi.guest = action.guest