From 13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29 Mon Sep 17 00:00:00 2001 From: Maks Jopek Date: Sat, 24 Apr 2021 00:34:07 +0200 Subject: Playing almost working --- frontend/ts/timer.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 frontend/ts/timer.ts (limited to 'frontend/ts/timer.ts') diff --git a/frontend/ts/timer.ts b/frontend/ts/timer.ts new file mode 100644 index 0000000..f8dab25 --- /dev/null +++ b/frontend/ts/timer.ts @@ -0,0 +1,30 @@ +export default class Timer { + divTimer!: HTMLElement; + + interval!: any; + async start(playerIndex: number, finishTime: number): Promise { + return new Promise(resolve => { + let divTimer = document.getElementById(`${playerIndex}-player-time`); + if (divTimer === null) + throw new Error("divTimer doesn't Exist"); + else + this.divTimer = divTimer; + + this.interval = setInterval(() => { + this.updateDisplay(finishTime - Date.now(), resolve); + }, 1000); + }) + } + + updateDisplay(time: number, resolve: Function): void { + let secondsElapsed = Math.floor(time / 1000); + this.divTimer.innerHTML = secondsElapsed.toString(); + if (secondsElapsed === 0) { + resolve(); + clearInterval(this.interval); + } + } + stop(): void { + clearInterval(this.interval); + } +} \ No newline at end of file -- cgit v1.3.1