anki/ts/congrats/index.ts
Damien Elmes d1d71ffdbb add back support for custom mount point in congrats screen
This was inadvertently dropped in 478b3a53f1,
but AnkiWeb requires it.

In the future we will need to give these index pages a bit more thought,
as it's not very helpful to be exporting a creation function if we're
automatically mounting as the module is imported. Dropping the automatic
mounting would give us more flexibility, but currently that leads to
a FOUC in night mode, as the webview is revealed prior to a subsequent
web.eval() call being able to fire.
2022-02-17 16:28:48 +10:00

37 lines
1.1 KiB
TypeScript

// Copyright: Ankitects Pty Ltd and contributors
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import "./congrats-base.css";
import { ModuleName, setupI18n } from "../lib/i18n";
import { checkNightMode } from "../lib/nightmode";
import { empty, scheduler } from "../lib/proto";
import CongratsPage from "./CongratsPage.svelte";
const i18n = setupI18n({ modules: [ModuleName.SCHEDULING] });
export async function setupCongrats(): Promise<CongratsPage> {
checkNightMode();
await i18n;
const customMountPoint = document.getElementById("congrats");
const info = await scheduler.congratsInfo(empty);
const page = new CongratsPage({
// use #congrats if it exists, otherwise entire body
target: customMountPoint ?? document.body,
props: { info },
});
// refresh automatically if a custom area not provided
if (!customMountPoint) {
setInterval(async () => {
const info = await scheduler.congratsInfo(empty);
page.$set({ info });
}, 60000);
}
return page;
}
setupCongrats();