From e0237f7dad31b0b2c2d80508e825d3ead1d7ba39 Mon Sep 17 00:00:00 2001 From: larssand Date: Sun, 22 Mar 2026 17:49:19 +0100 Subject: [PATCH] fix render --- src/app.js | 88 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/src/app.js b/src/app.js index 5df7450..0e87ff6 100644 --- a/src/app.js +++ b/src/app.js @@ -2861,42 +2861,54 @@ function renderView() { themeLabel.textContent = t("ui.theme"); } - switch (currentView) { - case "dashboard": - renderDashboard(); - break; - case "events": - renderEvents(); - break; - case "race_setup": - renderRaceSetup(); - break; - case "classes": - renderClasses(); - break; - case "drivers": - renderDrivers(); - break; - case "cars": - renderCars(); - break; - case "timing": - renderTiming(); - break; - case "judging": - renderJudging(); - break; - case "overlay": - renderOverlay(); - break; - case "settings": - renderSettings(); - break; - case "guide": - renderGuide(); - break; - default: - renderDashboard(); + try { + switch (currentView) { + case "dashboard": + renderDashboard(); + break; + case "events": + renderEvents(); + break; + case "race_setup": + renderRaceSetup(); + break; + case "classes": + renderClasses(); + break; + case "drivers": + renderDrivers(); + break; + case "cars": + renderCars(); + break; + case "timing": + renderTiming(); + break; + case "judging": + renderJudging(); + break; + case "overlay": + renderOverlay(); + break; + case "settings": + renderSettings(); + break; + case "guide": + renderGuide(); + break; + default: + renderDashboard(); + } + } catch (error) { + console.error("renderView failed", error); + dom.view.innerHTML = ` +
+

Render error

+
+

${escapeHtml(error instanceof Error ? error.message : String(error))}

+
+
+ `; } updateHeaderState(); @@ -3202,8 +3214,8 @@ function handleSessionTimerTick() { function renderDashboard() { const active = getActiveSession(); const schedule = getScheduleDriftSummary(); - const totalPassings = Object.values(state.resultsBySession).reduce( - (sum, x) => sum + (x.passings?.length || 0), + const totalPassings = Object.values(state.resultsBySession || {}).reduce( + (sum, x) => sum + (x?.passings?.length || 0), 0 ); const backendUrl = getBackendUrl();