diff --git a/frontend/src/ts/controllers/page-controller.ts b/frontend/src/ts/controllers/page-controller.ts index b777f0eec1f3..9afa57310fed 100644 --- a/frontend/src/ts/controllers/page-controller.ts +++ b/frontend/src/ts/controllers/page-controller.ts @@ -4,6 +4,7 @@ import { getActivePage, setActivePage, setSelectedProfileName, + setTestPageVisible, } from "../states/core"; import * as Settings from "../pages/settings"; import * as Account from "../pages/account"; @@ -241,6 +242,9 @@ export async function change( }); previousPage.element.hide(); await previousPage?.afterHide(); + if (previousPage?.id === "test") { + setTestPageVisible(false); + } // we need to evaluate and store next page loading mode in case options.loadingOptions.loadingMode is sync const nextPageLoadingMode = nextPage.loadingOptions?.loadingMode(); @@ -291,6 +295,9 @@ export async function change( setActivePage(nextPage.id); updateOpenGraphUrl(); Focus.set(false); + if (nextPage.id === "test") { + setTestPageVisible(true); + } //next page await nextPage?.beforeShow({ diff --git a/frontend/src/ts/states/core.ts b/frontend/src/ts/states/core.ts index b8023581092b..4d1a36935a90 100644 --- a/frontend/src/ts/states/core.ts +++ b/frontend/src/ts/states/core.ts @@ -35,3 +35,7 @@ export const isAuthenticated = (): boolean => getUserId() !== null; export const [getSelectedProfileName, setSelectedProfileName] = createSignal< string | undefined >(undefined); + +export const [isTestPageVisible, setTestPageVisible] = createSignal( + getActivePage() === "test", +); diff --git a/frontend/src/ts/test/test-logic.ts b/frontend/src/ts/test/test-logic.ts index fb864c967b81..fbc258d2056f 100644 --- a/frontend/src/ts/test/test-logic.ts +++ b/frontend/src/ts/test/test-logic.ts @@ -26,7 +26,11 @@ import * as TodayTracker from "./today-tracker"; import * as ChallengeContoller from "../controllers/challenge-controller"; import { clearQuoteStats } from "../states/quote-rate"; import * as Result from "./result"; -import { getActivePage, isAuthenticated } from "../states/core"; +import { + getActivePage, + isAuthenticated, + isTestPageVisible, +} from "../states/core"; import { setResultVisible, setWordsHaveNewline, @@ -423,7 +427,7 @@ async function init(): Promise { return await init(); } - if (getActivePage() === "test") { + if (isTestPageVisible()) { await Funbox.activate(); }