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

@@ -257,6 +257,7 @@ function renderRecentPassings(session, deps) {
}
export function renderTimingView(deps) {
const leaderboardModalScrollTop = document.querySelector("#leaderboardModalOverlay .modal-card")?.scrollTop || 0;
const {
state, dom, t, escapeHtml, formatLap, formatCountdown, formatElapsedClock, renderTable, uid,
getActiveSession, ensureSessionResult, buildLeaderboard, getSessionTiming, getVisiblePassings,
@@ -369,7 +370,7 @@ export function renderTimingView(deps) {
<span class="pill ${active.status === "running" ? "pill-green" : ""}">${escapeHtml(getStatusLabel(active.status))}</span>
</div>
<div class="timing-session-stats">
<article class="timing-session-stat"><span>${clockLabel}</span><strong>${clockValue}</strong></article>
<article class="timing-session-stat"><span>${clockLabel}</span><strong data-timing-clock>${clockValue}</strong></article>
<article class="timing-session-stat"><span>${t("timing.started")}</span><strong>${active.startedAt ? new Date(active.startedAt).toLocaleTimeString() : "-"}</strong></article>
<article class="timing-session-stat"><span>${t("table.start_mode")}</span><strong>${escapeHtml(getStartModeLabel(active.startMode))}</strong></article>
<article class="timing-session-stat"><span>${t("timing.seeding_mode")}</span><strong>${active.seedBestLapCount > 0 ? `${active.seedBestLapCount}` : "-"}</strong></article>
@@ -440,6 +441,11 @@ export function renderTimingView(deps) {
${selectedRow && active ? renderLeaderboardModal(active, selectedRow, { ...helperDeps, renderQuickAddActions: (session, transponder, idPrefix) => renderQuickAddActions(session, transponder, idPrefix, helperDeps) }) : ""}
`;
if (selectedRow && leaderboardModalScrollTop > 0) {
const modalCard = document.querySelector("#leaderboardModalOverlay .modal-card");
if (modalCard instanceof HTMLElement) modalCard.scrollTop = leaderboardModalScrollTop;
}
document.getElementById("timingConnect")?.addEventListener("click", () => {
const input = document.getElementById("timingWsUrl");
if (input && input.value.trim()) {
@@ -573,7 +579,7 @@ export function renderTimingView(deps) {
if (!tp) {
return;
}
processDecoderMessage({
const changed = processDecoderMessage({
msg: "PASSING",
transponder: tp,
rtc_time: new Date().toISOString(),
@@ -581,6 +587,7 @@ export function renderTimingView(deps) {
resend: false,
loop_id: "sim",
});
if (changed) renderView();
});
document.getElementById("setActiveSession")?.addEventListener("click", () => {