From c64dd6c9593ae2ae2ca20c38868b73eda13a5975 Mon Sep 17 00:00:00 2001 From: Luc Mcgrady Date: Wed, 3 Sep 2025 22:29:23 +0100 Subject: [PATCH] Neaten bottom code --- .../ReviewerBottomOuter.svelte | 83 ++---------------- .../reviewer/reviewer-bottom/reviewer.ts | 86 +++++++++++++++++++ 2 files changed, 92 insertions(+), 77 deletions(-) create mode 100644 ts/routes/reviewer/reviewer-bottom/reviewer.ts diff --git a/ts/routes/reviewer/reviewer-bottom/ReviewerBottomOuter.svelte b/ts/routes/reviewer/reviewer-bottom/ReviewerBottomOuter.svelte index c92e56462..2e95d1965 100644 --- a/ts/routes/reviewer/reviewer-bottom/ReviewerBottomOuter.svelte +++ b/ts/routes/reviewer/reviewer-bottom/ReviewerBottomOuter.svelte @@ -4,88 +4,17 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html --> - +{#if reviewerInfo} + +{/if} diff --git a/ts/routes/reviewer/reviewer-bottom/reviewer.ts b/ts/routes/reviewer/reviewer-bottom/reviewer.ts new file mode 100644 index 000000000..ce25f719c --- /dev/null +++ b/ts/routes/reviewer/reviewer-bottom/reviewer.ts @@ -0,0 +1,86 @@ +import { writable } from "svelte/store"; +import type { AnswerButtonInfo } from "./types"; +import { bridgeCommand } from "@tslib/bridgecommand"; + +export function setupBottomBar() { + /* + let timerStopped = false; + + let maxTime = 0; + + function updateTime(): void { + const timeNode = document.getElementById("time"); + if (maxTime === 0) { + timeNode.textContent = ""; + return; + } + globalThis.time = Math.min(maxTime, globalThis.time); + const m = Math.floor(globalThis.time / 60); + const s = globalThis.time % 60; + const sStr = String(s).padStart(2, "0"); + const timeString = `${m}:${sStr}`; + + if (maxTime === time) { + timeNode.innerHTML = `${timeString}`; + } else { + timeNode.textContent = timeString; + } + }*/ + + const answerButtons = writable([]); + const remaining = writable<[number, number, number]>([0, 0, 0]); + const remainingIndex = writable(-1); + + let intervalId: number | undefined; + + function _showQuestion(_txt: string, _maxTime_: number): void { + _showAnswer([]); + globalThis.time = 0; + // maxTime = maxTime_; + // updateTime(); + + if (intervalId !== undefined) { + clearInterval(intervalId); + } + + /* + intervalId = setInterval(function() { + if (!timerStopped) { + globalThis.time += 1; + //updateTime(); + } + }, 1000);*/ + } + + function _showAnswer(info: AnswerButtonInfo[], _stopTimer = false): void { + console.log(info); + answerButtons.set(info); + // timerStopped = stopTimer; + } + + function _updateRemaining(counts: [number, number, number], idx: number) { + remaining.set(counts); + remainingIndex.set(idx); + } + + globalThis._showQuestion = _showQuestion; + globalThis._showAnswer = _showAnswer; + globalThis._updateRemaining = _updateRemaining; + + /* + function selectedAnswerButton(): string | undefined { + const node = document.activeElement as HTMLElement; + if (!node) { + return; + } + return node.dataset.ease; + } + */ + bridgeCommand("bottomReady"); + + return { + answerButtons, + remaining, + remainingIndex, + }; +} \ No newline at end of file