timer has formatted timetag

This commit is contained in:
cv
2021-06-10 22:46:26 +02:00
parent 21f1144fce
commit 441a67e09b
2 changed files with 26 additions and 1 deletions
+7
View File
@@ -4,10 +4,13 @@
* *
*/ */
import { stringFromMillis } from '../utils/time.js';
export class Timer { export class Timer {
clock = null; clock = null;
duration = null; duration = null;
current = null; current = null;
timeTag = null;
secondaryTimer = null; secondaryTimer = null;
_finishAt = null; _finishAt = null;
_finishedAt = null; _finishedAt = null;
@@ -133,8 +136,12 @@ export class Timer {
// getObject // getObject
getObject() { getObject() {
// update timer
this.update(); this.update();
// update timetag
this.timeTag = stringFromMillis(this.current);
return { return {
clock: this.clock, clock: this.clock,
running: Timer.toSeconds(this.current), running: Timer.toSeconds(this.current),
+18
View File
@@ -0,0 +1,18 @@
export const stringFromMillis = (
ms,
showSeconds = true,
delim = ':',
ifNull = '...'
) => {
if (ms === null || isNaN(ms)) return ifNull;
const showWith0 = (value) => (value < 10 ? `0${value}` : value);
const hours = showWith0(Math.floor(((ms / (1000 * 60 * 60)) % 60) % 24));
const minutes = showWith0(Math.floor((ms / (1000 * 60)) % 60));
const seconds = showWith0(Math.floor((ms / 1000) % 60));
return showSeconds
? `${
parseInt(hours) ? `${hours}${delim}` : `00${delim}`
}${minutes}${delim}${seconds}`
: `${parseInt(hours) ? `${hours}` : '00'}${delim}${minutes}`;
};