fix tränings länken och race day
This commit is contained in:
40
src/session_control.js
Normal file
40
src/session_control.js
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user