From be9c1d9107845213f8f8055987b2a1c8a4244d5c Mon Sep 17 00:00:00 2001 From: Albin David C Date: Thu, 26 Mar 2026 13:17:40 +0530 Subject: [PATCH 1/3] fix(challenge): recitfiy challenge loading through url --- frontend/src/ts/controllers/challenge-controller.ts | 4 ++-- frontend/src/ts/controllers/url-handler.tsx | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/src/ts/controllers/challenge-controller.ts b/frontend/src/ts/controllers/challenge-controller.ts index 84339c1dd4db..8544cfc2b354 100644 --- a/frontend/src/ts/controllers/challenge-controller.ts +++ b/frontend/src/ts/controllers/challenge-controller.ts @@ -375,9 +375,9 @@ export async function setup(challengeName: string): Promise { qs(".page.pageTest")?.show(); if (notitext === undefined) { - showNoticeNotification(`Challenge '${challenge.display}' loaded.`); + showSuccessNotification(`Challenge '${challenge.display}' loaded.`); } else { - showNoticeNotification("Challenge loaded. " + notitext); + showSuccessNotification("Challenge loaded. " + notitext); } setLoadedChallenge(challenge); challengeLoading = false; diff --git a/frontend/src/ts/controllers/url-handler.tsx b/frontend/src/ts/controllers/url-handler.tsx index 27b62003a14a..9b363025312f 100644 --- a/frontend/src/ts/controllers/url-handler.tsx +++ b/frontend/src/ts/controllers/url-handler.tsx @@ -315,18 +315,18 @@ export function loadChallengeFromUrl(getOverride?: string): void { ).toLowerCase(); if (getValue === "") return; - showNoticeNotification("Loading challenge"); + // showNoticeNotification("Loading challenge"); ChallengeController.setup(getValue) .then((result) => { if (result) { - showSuccessNotification("Challenge loaded"); + // showSuccessNotification("Challenge loaded"); restartTest({ nosave: true, }); } }) .catch((e: unknown) => { - showErrorNotification("Failed to load challenge"); + // showErrorNotification("Failed to load challenge"); console.error(e); }); } @@ -337,7 +337,9 @@ authEvent.subscribe((event) => { const hash = window.location.hash; loadCustomThemeFromUrl(search); loadTestSettingsFromUrl(search); - loadChallengeFromUrl(search); + void event.data.loadPromise.then(() => { + loadChallengeFromUrl(search); + }); void linkDiscord(hash); } }); From 35d913693e73fc6c9f9ed3514502a0ed02cf4a39 Mon Sep 17 00:00:00 2001 From: Albin David C Date: Thu, 26 Mar 2026 16:37:28 +0530 Subject: [PATCH 2/3] fix(challenge): remove unnecessary code and add await --- frontend/src/ts/controllers/url-handler.tsx | 31 +++++++++------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/frontend/src/ts/controllers/url-handler.tsx b/frontend/src/ts/controllers/url-handler.tsx index 9b363025312f..d274ee41fd29 100644 --- a/frontend/src/ts/controllers/url-handler.tsx +++ b/frontend/src/ts/controllers/url-handler.tsx @@ -309,37 +309,32 @@ export function loadTestSettingsFromUrl(getOverride?: string): void { } } -export function loadChallengeFromUrl(getOverride?: string): void { +export async function loadChallengeFromUrl( + getOverride?: string, +): Promise { const getValue = ( Misc.findGetParameter("challenge", getOverride) ?? "" ).toLowerCase(); if (getValue === "") return; - // showNoticeNotification("Loading challenge"); - ChallengeController.setup(getValue) - .then((result) => { - if (result) { - // showSuccessNotification("Challenge loaded"); - restartTest({ - nosave: true, - }); - } - }) - .catch((e: unknown) => { - // showErrorNotification("Failed to load challenge"); - console.error(e); + const result = await ChallengeController.setup(getValue); + if (result) { + restartTest({ + nosave: true, }); + } } -authEvent.subscribe((event) => { +authEvent.subscribe(async (event) => { if (event.type === "authStateChanged") { const search = window.location.search; const hash = window.location.hash; loadCustomThemeFromUrl(search); loadTestSettingsFromUrl(search); - void event.data.loadPromise.then(() => { - loadChallengeFromUrl(search); - }); + + await event.data.loadPromise; + + void loadChallengeFromUrl(search); void linkDiscord(hash); } }); From 684c277ed6b8abb04a24a92eed2aef62817adf75 Mon Sep 17 00:00:00 2001 From: Albin David C Date: Thu, 26 Mar 2026 17:26:48 +0530 Subject: [PATCH 3/3] fix(challenge): move load data await to the top --- frontend/src/ts/controllers/url-handler.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/ts/controllers/url-handler.tsx b/frontend/src/ts/controllers/url-handler.tsx index d274ee41fd29..af7057d63e33 100644 --- a/frontend/src/ts/controllers/url-handler.tsx +++ b/frontend/src/ts/controllers/url-handler.tsx @@ -329,11 +329,11 @@ authEvent.subscribe(async (event) => { if (event.type === "authStateChanged") { const search = window.location.search; const hash = window.location.hash; - loadCustomThemeFromUrl(search); - loadTestSettingsFromUrl(search); await event.data.loadPromise; + loadCustomThemeFromUrl(search); + loadTestSettingsFromUrl(search); void loadChallengeFromUrl(search); void linkDiscord(hash); }