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

@@ -177,15 +177,11 @@ function connectDecoderRole(role, deps) {
return;
}
if (Array.isArray(parsed)) {
parsed.forEach((message) => processDecoderMessage(message, role));
} else {
processDecoderMessage(parsed, role);
}
const messages = Array.isArray(parsed) ? parsed : [parsed];
const changed = messages.reduce((didChange, message) => processDecoderMessage(message, role) || didChange, false);
saveState();
updateConnectionBadge();
if (["timing", "dashboard", "overlay", "training"].includes(getCurrentView())) {
if (changed && ["timing", "dashboard", "overlay", "training"].includes(getCurrentView())) {
renderView();
}
};
@@ -330,7 +326,7 @@ export function processDecoderMessageHelper(msg, deps, decoderRole = "main") {
pushOverlayEvent("pit", `${entry.displayName || entry.driverName} • PIT IN`);
triggerRaceAudio("entering_pits", { variant: entry.carId || entry.driverId || transponder, driverId: entry.driverId, logData: { raceId: session.eventId, driverId: entry.driverId } });
saveState();
return;
return true;
}
if (decoderRole === "pit_exit") {
@@ -360,7 +356,7 @@ export function processDecoderMessageHelper(msg, deps, decoderRole = "main") {
pushOverlayEvent("pit", `${entry.displayName || entry.driverName} • PIT ${formatLap(pitStopMs)}`);
triggerRaceAudio("leaving_pits", { variant: entry.carId || entry.driverId || transponder, driverId: entry.driverId, logData: { raceId: session.eventId, driverId: entry.driverId } });
saveState();
return;
return true;
}
if (decoderRole === "split") {
@@ -392,7 +388,7 @@ export function processDecoderMessageHelper(msg, deps, decoderRole = "main") {
});
pushOverlayEvent("split", `${entry.displayName || entry.driverName} • ${formatLap(splitMs)}`);
saveState();
return;
return true;
}
if (startMode === "staggered" && !entry.startTimestamp) {
@@ -400,7 +396,7 @@ export function processDecoderMessageHelper(msg, deps, decoderRole = "main") {
entry.lastTimestamp = timestamp;
announcePassing(entry);
saveState();
return;
return true;
}
if (!entry.startTimestamp) {
@@ -448,7 +444,7 @@ export function processDecoderMessageHelper(msg, deps, decoderRole = "main") {
}
persistPassingToBackend(session.id, passing);
saveState();
return;
return true;
}
const previousPersonalBest = Number(entry.bestLapMs || 0) || null;
@@ -500,4 +496,6 @@ export function processDecoderMessageHelper(msg, deps, decoderRole = "main") {
}
}
announcePassing(entry);
saveState();
return true;
}