services/config/config-schema.jsjavascript
/**
* Declares every kiosk/device config value the app understands. Values come
* from URL params (source "param", read live by useConfig in config.jsx and
* kept alive across navigation), each with type, default and a German
* description shown in admin/debug contexts.
*
* @type {Array<{key: string, source: string, name: string, type: string, default: *, min: number, description: string}>}
*/
export const CONFIG_SCHEMA = [
{
key: "screensaverTimeout",
source: "param",
name: "screensaverTimeout",
type: "number",
default: 180,
min: 0,
description: "Sekunden ohne Interaktion, bevor der Screensaver startet.",
},
{
key: "screensaverFadeDuration",
source: "param",
name: "screensaverFadeDuration",
type: "number",
default: 1000,
min: 0,
description: "Dauer der Ein-/Ausblendanimation des Screensavers in Millisekunden.",
},
{
key: "deviceType",
source: "param",
name: "deviceType",
type: "string",
default: "default",
description:
'Erzwingt die Display-Orientierung dieses Kiosks unabhängig von der Route: "landscape" ' +
'oder "portrait" überschreiben die in PRESENTATION_MODES (presentationModes.js) hinterlegte ' +
'Vorgabe der aktuellen App, "default" übernimmt sie unverändert. Ausgewertet von ' +
"useRequiredOrientation (services/orientation.js), das RotateOverlay steuert.",
},
{
key: "defaultMode",
source: "param",
name: "defaultMode",
type: "string",
default: "all",
description:
'Wählt, welcher Screensaver (content.screensavers, siehe Screensaver.jsx) beim Leerlauf gezeigt wird - einer der Modus-Keys aus src/services/presentationModes.js (z.B. "value-partnership").',
},
{
key: "contentFile",
source: "param",
name: "contentFile",
type: "string",
default: null,
description:
"Erzwingt einen bestimmten Pfad zur content.json (statt der Datei, die ContentProvider anhand der aktuellen Route lädt, siehe src/services/presentationModes.js).",
},
];