diff --git a/build/configure/src/web.rs b/build/configure/src/web.rs index 9ee5d74b5..56ef63bad 100644 --- a/build/configure/src/web.rs +++ b/build/configure/src/web.rs @@ -229,18 +229,6 @@ fn build_and_check_pages(build: &mut Build) -> Result<()> { ":sveltekit" ], )?; - build_page( - "reviewer-bottom", - true, - inputs![ - // - ":ts:lib", - ":ts:components", - ":sass", - ":sveltekit" - ], - )?; - Ok(()) } diff --git a/qt/aqt/mediasrv.py b/qt/aqt/mediasrv.py index 820e762d9..0a4fd0ea0 100644 --- a/qt/aqt/mediasrv.py +++ b/qt/aqt/mediasrv.py @@ -334,6 +334,7 @@ def is_sveltekit_page(path: str) -> bool: "import-csv", "import-page", "image-occlusion", + "reviewer-bottom" ] diff --git a/qt/aqt/reviewer.py b/qt/aqt/reviewer.py index ab51ff805..c6779063f 100644 --- a/qt/aqt/reviewer.py +++ b/qt/aqt/reviewer.py @@ -355,7 +355,7 @@ class Reviewer: self.web.allow_drops = True self.web.eval("_blockDefaultDragDropBehavior();") # show answer / ease buttons - self.bottom.web.load_ts_page("reviewer-bottom") + self.bottom.web.load_sveltekit_page("reviewer-bottom") # Showing the question ########################################################################## @@ -848,7 +848,7 @@ timerStopped = false; else: maxTime = 0 self.bottom.web.eval( - "anki.showQuestion(%s,%d);" % (json.dumps(middle), maxTime) + "_showQuestion(%s,%d);" % (json.dumps(middle), maxTime) ) def _showEaseButtons(self) -> None: @@ -858,7 +858,7 @@ timerStopped = false; middle = self._answerButtons() conf = self.mw.col.decks.config_dict_for_deck_id(self.card.current_deck_id()) self.bottom.web.eval( - f"anki.showAnswer({json.dumps(middle)}, {json.dumps(conf['stopTimerOnAnswer'])});" + f"_showAnswer({json.dumps(middle)}, {json.dumps(conf['stopTimerOnAnswer'])});" ) def _remaining(self) -> str: diff --git a/ts/routes/reviewer-bottom/+page.svelte b/ts/routes/reviewer-bottom/+page.svelte new file mode 100644 index 000000000..fa264b129 --- /dev/null +++ b/ts/routes/reviewer-bottom/+page.svelte @@ -0,0 +1,69 @@ + + + \ No newline at end of file diff --git a/ts/routes/reviewer-bottom/index.svelte b/ts/routes/reviewer-bottom/ReviewerBottom.svelte similarity index 100% rename from ts/routes/reviewer-bottom/index.svelte rename to ts/routes/reviewer-bottom/ReviewerBottom.svelte diff --git a/ts/routes/reviewer-bottom/index.ts b/ts/routes/reviewer-bottom/index.ts deleted file mode 100644 index 95ab43f00..000000000 --- a/ts/routes/reviewer-bottom/index.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright: Ankitects Pty Ltd and contributors - * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */ - -/* eslint -@typescript-eslint/no-unused-vars: "off", -*/ - -import { mount } from "svelte"; -import "./index.scss"; -import ReviewerBottom from "./index.svelte"; -import { writable } from "svelte/store"; - -let time: number; // set in python code -let timerStopped = false; - -let maxTime = 0; - -function updateTime(): void { - const timeNode = document.getElementById("time"); - if (maxTime === 0) { - timeNode.textContent = ""; - return; - } - time = Math.min(maxTime, time); - const m = Math.floor(time / 60); - const s = time % 60; - const sStr = String(s).padStart(2, "0"); - const timeString = `${m}:${sStr}`; - - if (maxTime === time) { - timeNode.innerHTML = `${timeString}`; - } else { - timeNode.textContent = timeString; - } -} - -let intervalId: number | undefined; -let answerButtons = writable([]) - -export function showQuestion(txt: string, maxTime_: number): void { - showAnswer([]); - time = 0; - maxTime = maxTime_; - updateTime(); - - if (intervalId !== undefined) { - clearInterval(intervalId); - } - - intervalId = setInterval(function() { - if (!timerStopped) { - time += 1; - updateTime(); - } - }, 1000); -} - -export function showAnswer(info: AnswerButtonInfo[], stopTimer = false): void { - answerButtons.set(info); - timerStopped = stopTimer; -} - -function selectedAnswerButton(): string { - const node = document.activeElement as HTMLElement; - if (!node) { - return; - } - return node.dataset.ease; -} - -mount( - ReviewerBottom, - { target: document.body, props: {answerButtons} }, -);