fix tränings länken och race day

This commit is contained in:
larssand
2026-08-28 21:55:28 +02:00
parent 375bfb2416
commit 28e5c96010
7 changed files with 531 additions and 6 deletions

40
src/session_control.js Normal file
View File

@@ -0,0 +1,40 @@
export function beginSession(session, nowTs = Date.now()) {
session.status = "running";
session.startedAt = nowTs;
session.endedAt = null;
session.finishedByTimer = false;
session.followUpStartedAt = null;
session.pausedAt = null;
session.totalPausedMs = 0;
session.followUpPausedMs = 0;
session.audioAnnouncements = [];
return session;
}
export function finishSession(session, nowTs = Date.now()) {
session.status = "finished";
session.endedAt = nowTs;
session.finishedByTimer = false;
session.followUpStartedAt = null;
session.pausedAt = null;
return session;
}
export function pauseSession(session, nowTs = Date.now()) {
if (session?.status !== "running") return false;
session.status = "paused";
session.pausedAt = nowTs;
return true;
}
export function resumeSession(session, nowTs = Date.now()) {
if (session?.status !== "paused") return false;
const pausedDuration = Math.max(0, nowTs - Number(session.pausedAt || nowTs));
session.totalPausedMs = Math.max(0, Number(session.totalPausedMs || 0)) + pausedDuration;
if (session.followUpStartedAt) {
session.followUpPausedMs = Math.max(0, Number(session.followUpPausedMs || 0)) + pausedDuration;
}
session.pausedAt = null;
session.status = "running";
return true;
}