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:
@@ -0,0 +1,16 @@
|
||||
import { readdirSync } from 'fs'
|
||||
|
||||
/**
|
||||
* Elenca i video .mp4 presenti nella cartella spot.
|
||||
* Ritorna i filename ordinati alfabeticamente (sequenza prevedibile),
|
||||
* oppure un array vuoto se la cartella non esiste o non è leggibile.
|
||||
*/
|
||||
export function listSpotVideos(spotDir) {
|
||||
try {
|
||||
return readdirSync(spotDir)
|
||||
.filter(name => name.toLowerCase().endsWith('.mp4'))
|
||||
.sort((a, b) => a.localeCompare(b))
|
||||
} catch {
|
||||
return []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user