From 2b169bc97a261a23cd1e4295d68579f72b21807f Mon Sep 17 00:00:00 2001 From: larssand Date: Sun, 22 Mar 2026 18:15:58 +0100 Subject: [PATCH] loadstate --- src/app.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/app.js b/src/app.js index 61ead9a..1248780 100644 --- a/src/app.js +++ b/src/app.js @@ -1620,8 +1620,16 @@ let driverBrandFilter = ""; let carBrandFilter = ""; let raceFormatAdvanced = false; -const OBS_LAYOUTS = ["leaderboard", "grid", "lowerthird"]; -const OBS_THEMES = ["panel", "transparent", "chroma"]; +function getObsLayouts() { + return ["leaderboard", "grid", "lowerthird"]; +} + +function getObsThemes() { + return ["panel", "transparent", "chroma"]; +} + +const OBS_LAYOUTS = getObsLayouts(); +const OBS_THEMES = getObsThemes(); function createDefaultObsOverlaySettings() { return { @@ -1645,8 +1653,10 @@ function normalizeObsOverlaySettings(raw = {}) { const defaults = createDefaultObsOverlaySettings(); const rowValue = Number(raw?.rows); const rows = Number.isFinite(rowValue) ? Math.max(3, Math.min(12, Math.round(rowValue))) : defaults.rows; - const layout = OBS_LAYOUTS.includes(String(raw?.layout || "").toLowerCase()) ? String(raw.layout).toLowerCase() : defaults.layout; - const theme = OBS_THEMES.includes(String(raw?.theme || "").toLowerCase()) ? String(raw.theme).toLowerCase() : defaults.theme; + const layoutOptions = getObsLayouts(); + const themeOptions = getObsThemes(); + const layout = layoutOptions.includes(String(raw?.layout || "").toLowerCase()) ? String(raw.layout).toLowerCase() : defaults.layout; + const theme = themeOptions.includes(String(raw?.theme || "").toLowerCase()) ? String(raw.theme).toLowerCase() : defaults.theme; return { rows, showClock: raw?.showClock !== false, @@ -1682,8 +1692,8 @@ function getObsOverlayConfig() { showResult: parseOverlayBooleanParam("showResult", base.showResult), showBest: parseOverlayBooleanParam("showBest", base.showBest), showGap: parseOverlayBooleanParam("showGap", base.showGap), - layout: OBS_LAYOUTS.includes(String(urlParams.get("layout") || "").toLowerCase()) ? String(urlParams.get("layout")).toLowerCase() : base.layout, - theme: OBS_THEMES.includes(String(urlParams.get("obsTheme") || "").toLowerCase()) ? String(urlParams.get("obsTheme")).toLowerCase() : base.theme, + layout: getObsLayouts().includes(String(urlParams.get("layout") || "").toLowerCase()) ? String(urlParams.get("layout")).toLowerCase() : base.layout, + theme: getObsThemes().includes(String(urlParams.get("obsTheme") || "").toLowerCase()) ? String(urlParams.get("obsTheme")).toLowerCase() : base.theme, publicToken: String(urlParams.get("token") || base.publicToken || "").trim(), }); }