fix live leaderbord details

This commit is contained in:
larssand
2026-08-28 21:12:43 +02:00
parent 3cf68cf34a
commit c6262aceab
15 changed files with 293 additions and 34 deletions

View File

@@ -235,8 +235,9 @@ export function startAppVersionPollingHelper({ checkAppVersion, getAppVersionPol
export function startOverlaySyncHelper({ getOverlaySyncTimer, setOverlaySyncTimer, getLocalStateDirty, hydrateFromBackend, getCurrentView, renderView }) {
clearInterval(getOverlaySyncTimer());
setOverlaySyncTimer(setInterval(async () => {
if (getCurrentView() !== "overlay") return;
if (!getLocalStateDirty()) await hydrateFromBackend();
if (getCurrentView() === "overlay") renderView();
renderView();
}, 800));
}
@@ -248,10 +249,10 @@ export function startOverlayRotationHelper({ getOverlayRotationTimer, setOverlay
}, 8000));
}
export function startOverlayLiveRefreshHelper({ getOverlayLiveRefreshTimer, setOverlayLiveRefreshTimer, getCurrentView, getOverlayViewMode, renderOverlay }) {
export function startOverlayLiveRefreshHelper({ getOverlayLiveRefreshTimer, setOverlayLiveRefreshTimer, getCurrentView, getOverlayViewMode, refreshOverlayDynamics }) {
clearInterval(getOverlayLiveRefreshTimer());
setOverlayLiveRefreshTimer(setInterval(() => {
if (getCurrentView() === "overlay" && ["leaderboard", "tv", "team"].includes(getOverlayViewMode())) renderOverlay();
if (getCurrentView() === "overlay" && ["leaderboard", "speaker", "results", "tv", "team", "obs"].includes(getOverlayViewMode())) refreshOverlayDynamics();
}, 250));
}
@@ -418,12 +419,15 @@ export function handleSessionTimerTickHelper({ getActiveSession, isUntimedSessio
return { changed: true };
}
export function tickClockHelper({ dom, currentLanguage, handleSessionTimerTick, getActiveSession, getCurrentView, getOverlayMode, renderView, updateHeaderState }) {
export function tickClockHelper({ dom, currentLanguage, handleSessionTimerTick, getActiveSession, getCurrentView, getOverlayMode, renderView, refreshTimingDynamics = () => {}, updateHeaderState }) {
dom.clock.textContent = new Date().toLocaleString(currentLanguage() === "sv" ? "sv-SE" : "en-US");
const timerState = handleSessionTimerTick();
const active = getActiveSession();
if (getCurrentView() === "timing" && active && (active.status === "running" || timerState.changed)) renderView();
if (getCurrentView() === "timing" && active) {
if (timerState.changed) renderView();
else if (active.status === "running") refreshTimingDynamics();
}
if (getCurrentView() === "dashboard" && timerState.changed) renderView();
if (getOverlayMode() && getCurrentView() === "overlay" && active) renderView();
if (getOverlayMode() && getCurrentView() === "overlay" && active && timerState.changed) renderView();
if (timerState.changed) updateHeaderState();
}