aboutsummaryrefslogtreecommitdiffstats
path: root/frontend/ts/timer.ts
diff options
context:
space:
mode:
authorMaks Jopek <maksymilian.jopek@prym-soft.pl>2021-04-24 00:34:07 +0200
committerMaks Jopek <maksymilian.jopek@prym-soft.pl>2021-04-24 00:34:07 +0200
commit13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29 (patch)
tree077a963bae31729dffa6c7c678af112680bb6d38 /frontend/ts/timer.ts
parent457ee1d7caa899bbe86bf7a1390f940b5b3176b7 (diff)
downloadfia-13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29.tar.gz
fia-13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29.tar.zst
fia-13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29.zip
Playing almost working
Diffstat (limited to 'frontend/ts/timer.ts')
-rw-r--r--frontend/ts/timer.ts30
1 files changed, 30 insertions, 0 deletions
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<void> {
+ 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