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..af7057d63e33 100644 --- a/frontend/src/ts/controllers/url-handler.tsx +++ b/frontend/src/ts/controllers/url-handler.tsx @@ -309,35 +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; + + await event.data.loadPromise; + loadCustomThemeFromUrl(search); loadTestSettingsFromUrl(search); - loadChallengeFromUrl(search); + void loadChallengeFromUrl(search); void linkDiscord(hash); } });