diff --git a/qt/aqt/browser/card_info.py b/qt/aqt/browser/card_info.py index 05a9312ba..abbec4ae3 100644 --- a/qt/aqt/browser/card_info.py +++ b/qt/aqt/browser/card_info.py @@ -68,7 +68,7 @@ class CardInfoDialog(QDialog): def update_card(self, card_id: CardId | None) -> None: self.web.eval( - f"anki.cardInfoPromise.then((c) => c.$set({{ cardId: {json.dumps(card_id)} }}));" + f"anki.cardInfoPromise.then((c) => c.updateStats({json.dumps(card_id)}));" ) def reject(self) -> None: diff --git a/ts/card-info/CardInfo.svelte b/ts/card-info/CardInfo.svelte index 2a3e1f450..694452ea2 100644 --- a/ts/card-info/CardInfo.svelte +++ b/ts/card-info/CardInfo.svelte @@ -11,14 +11,20 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import CardStats from "./CardStats.svelte"; import Revlog from "./Revlog.svelte"; - export let cardId: number | null = null; export let includeRevlog: boolean = true; let stats: Stats.CardStatsResponse | null = null; let revlog: Stats.CardStatsResponse.StatsRevlogEntry[] | null = null; - async function updateStats(cardId: number): Promise { + export async function updateStats(cardId: number | null): Promise { const requestedCardId = cardId; + + if (cardId === null) { + stats = null; + revlog = null; + return; + } + const cardStats = await statsService.cardStats( Cards.CardId.create({ cid: requestedCardId }), ); @@ -32,13 +38,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } } } - - $: if (cardId) { - updateStats(cardId); - } else { - stats = null; - revlog = null; - } diff --git a/ts/card-info/index.ts b/ts/card-info/index.ts index e2d9b40c5..c6e29bcbb 100644 --- a/ts/card-info/index.ts +++ b/ts/card-info/index.ts @@ -21,7 +21,7 @@ export async function setupCardInfo(target: HTMLElement): Promise { if (window.location.hash.startsWith("#test")) { // use #testXXXX where XXXX is card ID to test const cardId = parseInt(window.location.hash.substr("#test".length), 10); - setupCardInfo(document.body).then((cardInfo: CardInfo): void => - cardInfo.$set({ cardId }), + setupCardInfo(document.body).then( + (cardInfo: CardInfo): Promise => cardInfo.updateStats(cardId), ); }