From 765ca9569feee597d0d42c7ef809349e460fdaad Mon Sep 17 00:00:00 2001 From: Miodec Date: Mon, 22 Dec 2025 22:44:52 +0100 Subject: [PATCH 1/2] refactor: use loadingOptions for leaderboards page --- frontend/src/ts/controllers/page-controller.ts | 4 ++-- frontend/src/ts/pages/leaderboards.ts | 8 +++++++- frontend/src/ts/pages/page.ts | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/src/ts/controllers/page-controller.ts b/frontend/src/ts/controllers/page-controller.ts index e60461598866..b191c40e5c99 100644 --- a/frontend/src/ts/controllers/page-controller.ts +++ b/frontend/src/ts/controllers/page-controller.ts @@ -275,9 +275,9 @@ export async function change( typeof nextPageLoadingMode === "object" && nextPageLoadingMode.mode === "async" ) { - nextPageLoadingMode.beforeLoading(); + nextPageLoadingMode.beforeLoading?.(); void nextPage?.loadingOptions?.loadingPromise().then(() => { - nextPageLoadingMode.afterLoading(); + nextPageLoadingMode.afterLoading?.(); }); } diff --git a/frontend/src/ts/pages/leaderboards.ts b/frontend/src/ts/pages/leaderboards.ts index bb07897e9d89..d9c78c1b0414 100644 --- a/frontend/src/ts/pages/leaderboards.ts +++ b/frontend/src/ts/pages/leaderboards.ts @@ -1485,13 +1485,19 @@ export const page = new PageWithUrlParams({ element: qsr(".page.pageLeaderboards"), path: "/leaderboards", urlParamsSchema: UrlParameterSchema, + loadingOptions: { + style: "spinner", + loadingMode: () => "sync", + loadingPromise: async () => { + await ServerConfiguration.configurationPromise; + }, + }, afterHide: async (): Promise => { Skeleton.remove("pageLeaderboards"); stopTimer(); }, beforeShow: async (options): Promise => { - await ServerConfiguration.configurationPromise; Skeleton.append("pageLeaderboards", "main"); await updateValidDailyLeaderboards(); await appendModeAndLanguageButtons(); diff --git a/frontend/src/ts/pages/page.ts b/frontend/src/ts/pages/page.ts index 70375c86fcb5..aa23f89e43b6 100644 --- a/frontend/src/ts/pages/page.ts +++ b/frontend/src/ts/pages/page.ts @@ -34,7 +34,7 @@ export type LoadingOptions = { loadingMode: () => | "none" | "sync" - | { mode: "async"; beforeLoading: () => void; afterLoading: () => void }; + | { mode: "async"; beforeLoading?: () => void; afterLoading?: () => void }; /** * When this promise resolves, the loading screen will be hidden. */ From d6233f3405ad43952827df65092949c2bd6bf23a Mon Sep 17 00:00:00 2001 From: Miodec Date: Fri, 26 Dec 2025 21:26:43 +0100 Subject: [PATCH 2/2] refactor: move result html into its own file --- frontend/src/html/pages/test-result.html | 317 ++++++++++++++++++++++ frontend/src/html/pages/test.html | 318 +---------------------- 2 files changed, 318 insertions(+), 317 deletions(-) create mode 100644 frontend/src/html/pages/test-result.html diff --git a/frontend/src/html/pages/test-result.html b/frontend/src/html/pages/test-result.html new file mode 100644 index 000000000000..14f4bbd3e81d --- /dev/null +++ b/frontend/src/html/pages/test-result.html @@ -0,0 +1,317 @@ + diff --git a/frontend/src/html/pages/test.html b/frontend/src/html/pages/test.html index f2d8f33c8140..a2cf8e5a2538 100644 --- a/frontend/src/html/pages/test.html +++ b/frontend/src/html/pages/test.html @@ -195,321 +195,5 @@ - +