From a7f5f1dc3547f373a37bf47fc78d3b54ecf0f18f Mon Sep 17 00:00:00 2001 From: Miodec Date: Sat, 1 Jan 2022 23:04:25 +0100 Subject: [PATCH] replaced all the active page class checks with a stored variable of which page is active --- src/js/account-controller.js | 16 ++++++++++------ src/js/account.js | 12 +++++------- src/js/challenge-controller.js | 2 +- src/js/db.js | 9 +++++---- src/js/input-controller.js | 6 +++--- src/js/route-controller.js | 1 + src/js/test/test-logic.js | 4 ++-- src/js/ui.js | 27 +++++++++++++++++++++------ 8 files changed, 48 insertions(+), 29 deletions(-) diff --git a/src/js/account-controller.js b/src/js/account-controller.js index 59f3a5917..4e40c52da 100644 --- a/src/js/account-controller.js +++ b/src/js/account-controller.js @@ -64,7 +64,7 @@ const authListener = firebase.auth().onAuthStateChanged(async function (user) { await loadUser(user); } else { UI.setPageTransition(false); - if ($(".pageLoading").hasClass("active")) UI.changePage(""); + if (UI.getActivePage() == "pageLoading") UI.changePage(""); } let theme = Misc.findGetParameter("customTheme"); if (theme !== null) { @@ -278,11 +278,15 @@ export function linkWithGoogle() { } export function unlinkGoogle() { - firebase.auth().currentUser.unlink("google.com").then((result) => { - console.log(result); - }).catch((error) => { - console.log(error); - }); + firebase + .auth() + .currentUser.unlink("google.com") + .then((result) => { + console.log(result); + }) + .catch((error) => { + console.log(error); + }); } export function linkWithEmail(email, password) { diff --git a/src/js/account.js b/src/js/account.js index af7c86cc6..4d7017bc6 100644 --- a/src/js/account.js +++ b/src/js/account.js @@ -54,11 +54,11 @@ export async function getDataAndInit() { // $("#top #menu .account .icon").html(''); $("#top #menu .account").css("opacity", 1); - if ($(".pageLoading").hasClass("active")) UI.changePage(""); + if (UI.getActivePage() == "pageLoading") UI.changePage(""); AccountController.signOut(); return; } - if ($(".pageLoading").hasClass("active")) { + if (UI.getActivePage() == "pageLoading") { LoadingPage.updateBar(90); } else { LoadingPage.updateBar(65.9); @@ -139,8 +139,6 @@ export async function getDataAndInit() { } } } - // if($(".pageAccount").hasClass('active')) update(); - // if ($(".pageLogin").hasClass("active")) UI.changePage("account"); if (!UpdateConfig.changedBeforeDb) { //config didnt change before db loaded if (Config.localStorageConfig === null) { @@ -192,7 +190,7 @@ export async function getDataAndInit() { UpdateConfig.apply(DB.getSnapshot().config); Settings.update(); UpdateConfig.saveToLocalStorage(true); - if ($(".page.pageTest").hasClass("active")) { + if (UI.getActivePage() == "pageTest") { TestLogic.restart(false, true); } DB.saveConfig(Config); @@ -209,7 +207,7 @@ export async function getDataAndInit() { } } if ( - $(".pageLogin").hasClass("active") || + UI.getActivePage() == "pageLogin" || window.location.pathname === "/account" ) { UI.changePage("account"); @@ -223,7 +221,7 @@ export async function getDataAndInit() { Settings.showAccountSection(); UI.setPageTransition(false); console.log("account loading finished"); - if ($(".pageLoading").hasClass("active")) { + if (UI.getActivePage() == "pageLoading") { LoadingPage.updateBar(100); UI.changePage(""); } else { diff --git a/src/js/challenge-controller.js b/src/js/challenge-controller.js index 7789d5059..bf1297927 100644 --- a/src/js/challenge-controller.js +++ b/src/js/challenge-controller.js @@ -139,7 +139,7 @@ export function verify(result) { export async function setup(challengeName) { challengeLoading = true; - if (!$(".page.pageTest").hasClass("active")) { + if (UI.getActivePage() !== "pageTest") { UI.changePage("", true); } diff --git a/src/js/db.js b/src/js/db.js index 7d13f6184..673ba6472 100644 --- a/src/js/db.js +++ b/src/js/db.js @@ -4,6 +4,7 @@ import * as Notifications from "./notifications"; import axiosInstance from "./axios-instance"; import * as TodayTracker from "./today-tracker"; import * as LoadingPage from "./loading-page"; +import * as UI from "./ui"; let dbSnapshot = null; @@ -52,7 +53,7 @@ export async function initSnapshot() { let snap = defaultSnap; try { if (firebase.auth().currentUser == null) return false; - if ($(".pageLoading").hasClass("active")) { + if (UI.getActivePage() == "pageLoading") { LoadingPage.updateBar(18); } else { LoadingPage.updateBar(13.3); @@ -81,7 +82,7 @@ export async function initSnapshot() { } else if (userData.lbMemory) { snap.lbMemory = userData.lbMemory; } - if ($(".pageLoading").hasClass("active")) { + if (UI.getActivePage() == "pageLoading") { LoadingPage.updateBar(36); } else { LoadingPage.updateBar(26.6); @@ -92,7 +93,7 @@ export async function initSnapshot() { if (configData) { snap.config = configData.config; } - if ($(".pageLoading").hasClass("active")) { + if (UI.getActivePage() == "pageLoading") { LoadingPage.updateBar(54); } else { LoadingPage.updateBar(39.9); @@ -109,7 +110,7 @@ export async function initSnapshot() { return 0; } }); - if ($(".pageLoading").hasClass("active")) { + if (UI.getActivePage() == "pageLoading") { LoadingPage.updateBar(72); } else { LoadingPage.updateBar(52.6); diff --git a/src/js/input-controller.js b/src/js/input-controller.js index 605e79a50..6a7b657b7 100644 --- a/src/js/input-controller.js +++ b/src/js/input-controller.js @@ -599,9 +599,9 @@ function handleTab(event) { $("#commandLineWrapper").hasClass("hidden") && $("#simplePopupWrapper").hasClass("hidden") && $("#quoteSubmitPopupWrapper").hasClass("hidden") && - !$(".page.pageLogin").hasClass("active") + UI.getActivePage() != "pageLogin" ) { - if ($(".pageTest").hasClass("active")) { + if (UI.getActivePage() == "pageTest") { if (Config.quickTab) { if ( TestUI.resultVisible || @@ -651,7 +651,7 @@ function handleTab(event) { } $(document).keydown((event) => { - if ($(".pageLoading").hasClass("active")) return event.preventDefault(); + if (UI.getActivePage() == "pageLoading") return event.preventDefault(); //autofocus const wordsFocused = $("#wordsInput").is(":focus"); diff --git a/src/js/route-controller.js b/src/js/route-controller.js index 30141e759..05323bf6a 100644 --- a/src/js/route-controller.js +++ b/src/js/route-controller.js @@ -18,6 +18,7 @@ export function handleInitialPageClasses(pathname) { let el = $(".page." + mappedRoutes[pathname]); $(el).removeClass("hidden"); $(el).addClass("active"); + UI.setActivePage(mappedRoutes[pathname]); } (function (history) { diff --git a/src/js/test/test-logic.js b/src/js/test/test-logic.js index f1eed8b70..805dc23b6 100644 --- a/src/js/test/test-logic.js +++ b/src/js/test/test-logic.js @@ -466,7 +466,7 @@ export function restart( } catch {} return; } - if ($(".pageTest").hasClass("active") && !TestUI.resultVisible) { + if (UI.getActivePage() == "pageTest" && !TestUI.resultVisible) { if (!ManualRestart.get()) { if (hasTab) { try { @@ -1089,7 +1089,7 @@ export async function init() { // $("#words").css("height", "auto"); // $("#wordsWrapper").css("height", "auto"); // } else { - if ($(".pageTest").hasClass("active")) { + if (UI.getActivePage() == "pageTest") { await Funbox.activate(); } TestUI.showWords(); diff --git a/src/js/ui.js b/src/js/ui.js index 6b4ac3665..312391029 100644 --- a/src/js/ui.js +++ b/src/js/ui.js @@ -14,8 +14,18 @@ import * as Settings from "./settings"; import * as Account from "./account"; import * as Leaderboards from "./leaderboards"; import * as Funbox from "./funbox"; +import { active } from "./challenge-controller"; export let pageTransition = true; +let activePage = "pageLoading"; + +export function getActivePage() { + return activePage; +} + +export function setActivePage(active) { + activePage = active; +} export function setPageTransition(val) { pageTransition = val; @@ -113,19 +123,20 @@ export function changePage(page, norestart = false) { return; } console.log(`change page ${page}`); - let activePage = $(".page.active"); + let activePageElement = $(".page.active"); $(".page").removeClass("active"); $("#wordsInput").focusout(); if (page == "test" || page == "") { setPageTransition(true); swapElements( - activePage, + activePageElement, $(".page.pageTest"), 250, () => { setPageTransition(false); TestUI.focusWords(); $(".page.pageTest").addClass("active"); + activePage = "pageTest"; history.pushState("/", null, "/"); }, () => { @@ -142,10 +153,11 @@ export function changePage(page, norestart = false) { } else if (page == "about") { setPageTransition(true); TestLogic.restart(); - swapElements(activePage, $(".page.pageAbout"), 250, () => { + swapElements(activePageElement, $(".page.pageAbout"), 250, () => { setPageTransition(false); history.pushState("about", null, "about"); $(".page.pageAbout").addClass("active"); + activePage = "pageAbout"; }); Funbox.activate("none"); TestConfig.hide(); @@ -153,10 +165,11 @@ export function changePage(page, norestart = false) { } else if (page == "settings") { setPageTransition(true); TestLogic.restart(); - swapElements(activePage, $(".page.pageSettings"), 250, () => { + swapElements(activePageElement, $(".page.pageSettings"), 250, () => { setPageTransition(false); history.pushState("settings", null, "settings"); $(".page.pageSettings").addClass("active"); + activePage = "pageSettings"; }); Funbox.activate("none"); Settings.update(); @@ -172,13 +185,14 @@ export function changePage(page, norestart = false) { setPageTransition(true); TestLogic.restart(); swapElements( - activePage, + activePageElement, $(".page.pageAccount"), 250, () => { setPageTransition(false); history.pushState("account", null, "account"); $(".page.pageAccount").addClass("active"); + activePage = "pageAccount"; }, () => { SignOutButton.show(); @@ -194,10 +208,11 @@ export function changePage(page, norestart = false) { } else { setPageTransition(true); TestLogic.restart(); - swapElements(activePage, $(".page.pageLogin"), 250, () => { + swapElements(activePageElement, $(".page.pageLogin"), 250, () => { setPageTransition(false); history.pushState("login", null, "login"); $(".page.pageLogin").addClass("active"); + activePage = "pageLogin"; }); Funbox.activate("none"); TestConfig.hide();