From b1bf8c3793da88994b1630daf0cd20b48db320ab Mon Sep 17 00:00:00 2001 From: Miodec Date: Wed, 19 Jan 2022 23:58:50 +0100 Subject: [PATCH] website starts in focus mode and focus is removed once finished loading --- backend/api/controllers/config.js | 8 +++++--- backend/api/controllers/result.js | 8 +++++--- src/js/account-controller.js | 2 ++ src/js/account.js | 5 +++++ src/js/ready.js | 7 +++---- src/js/test/focus.js | 8 ++++++-- src/js/test/test-logic.js | 2 +- src/js/ui.js | 20 ++++++-------------- 8 files changed, 33 insertions(+), 27 deletions(-) diff --git a/backend/api/controllers/config.js b/backend/api/controllers/config.js index 5105633ed..149062633 100644 --- a/backend/api/controllers/config.js +++ b/backend/api/controllers/config.js @@ -4,9 +4,11 @@ const { validateConfig } = require("../../handlers/validation"); class ConfigController { static async getConfig(req, res, next) { try { - const { uid } = req.decodedToken; - let config = await ConfigDAO.getConfig(uid); - return res.status(200).json(config); + return setTimeout(async () => { + const { uid } = req.decodedToken; + let config = await ConfigDAO.getConfig(uid); + return res.status(200).json(config); + }, 3000); } catch (e) { return next(e); } diff --git a/backend/api/controllers/result.js b/backend/api/controllers/result.js index 06d88d41c..21c0c363a 100644 --- a/backend/api/controllers/result.js +++ b/backend/api/controllers/result.js @@ -34,9 +34,11 @@ try { class ResultController { static async getResults(req, res, next) { try { - const { uid } = req.decodedToken; - const results = await ResultDAO.getResults(uid); - return res.status(200).json(results); + return setTimeout(async () => { + const { uid } = req.decodedToken; + const results = await ResultDAO.getResults(uid); + return res.status(200).json(results); + }, 3000); } catch (e) { next(e); } diff --git a/src/js/account-controller.js b/src/js/account-controller.js index 4e40c52da..458bdbf31 100644 --- a/src/js/account-controller.js +++ b/src/js/account-controller.js @@ -13,6 +13,7 @@ import * as TestLogic from "./test-logic"; import * as UI from "./ui"; import axiosInstance from "./axios-instance"; import * as PSA from "./psa"; +import * as Focus from "./focus"; export const gmailProvider = new firebase.auth.GoogleAuthProvider(); // const githubProvider = new firebase.auth.GithubAuthProvider(); @@ -64,6 +65,7 @@ const authListener = firebase.auth().onAuthStateChanged(async function (user) { await loadUser(user); } else { UI.setPageTransition(false); + Focus.set(false); if (UI.getActivePage() == "pageLoading") UI.changePage(""); } let theme = Misc.findGetParameter("customTheme"); diff --git a/src/js/account.js b/src/js/account.js index 519eff701..5e4a532a3 100644 --- a/src/js/account.js +++ b/src/js/account.js @@ -19,6 +19,8 @@ import * as AllTimeStats from "./all-time-stats"; import * as PbTables from "./pb-tables"; import * as AccountController from "./account-controller"; import * as LoadingPage from "./loading-page"; +import * as Focus from "./focus"; +import * as SignOutButton from "./sign-out-button"; import axiosInstance from "./axios-instance"; let filterDebug = false; @@ -223,6 +225,7 @@ export async function getDataAndInit() { console.log("account loading finished"); if (UI.getActivePage() == "pageLoading") { LoadingPage.updateBar(100, true); + Focus.set(false); UI.changePage(""); } } @@ -1010,6 +1013,8 @@ export function update() { ChartController.accountHistory.update({ duration: 0 }); ChartController.accountActivity.update({ duration: 0 }); LoadingPage.updateBar(100, true); + SignOutButton.show(); + Focus.set(false); UI.swapElements( $(".pageAccount .preloader"), $(".pageAccount .content"), diff --git a/src/js/ready.js b/src/js/ready.js index d77bcdf48..c47ab2b7f 100644 --- a/src/js/ready.js +++ b/src/js/ready.js @@ -9,6 +9,7 @@ import * as SignOutButton from "./sign-out-button"; import * as MonkeyPower from "./monkey-power"; import * as NewVersionNotification from "./new-version-notification"; import * as Notifications from "./notifications"; +import * as Focus from "./focus"; ManualRestart.set(); Misc.migrateFromCookies(); @@ -22,6 +23,7 @@ if (window.location.hostname === "localhost") { }); } +Focus.set(true, true); RouteController.handleInitialPageClasses(window.location.pathname); $(document).ready(() => { if (window.location.pathname === "/") { @@ -47,9 +49,6 @@ $(document).ready(() => { .removeClass("hidden") .stop(true, true) .animate({ opacity: 1 }, 250, () => { - if (window.location.pathname === "/account") { - SignOutButton.show(); - } if (window.location.pathname === "/verify") { const fragment = new URLSearchParams(window.location.hash.slice(1)); if (fragment.has("access_token")) { @@ -70,7 +69,7 @@ $(document).ready(() => { // } } else if (window.location.pathname !== "/") { let page = window.location.pathname.replace("/", ""); - UI.changePage(page); + // UI.changePage(page); } }); Settings.settingsFillPromise.then(Settings.update); diff --git a/src/js/test/focus.js b/src/js/test/focus.js index b7dc4f1bb..fde7547cc 100644 --- a/src/js/test/focus.js +++ b/src/js/test/focus.js @@ -1,14 +1,15 @@ import * as Caret from "./caret"; +import * as UI from "./ui"; let state = false; -export function set(foc) { +export function set(foc, withCursor = false) { if (foc && !state) { state = true; Caret.stopAnimation(); $("#top").addClass("focus"); $("#bottom").addClass("focus"); - $("body").css("cursor", "none"); + if (!withCursor) $("body").css("cursor", "none"); $("#middle").addClass("focus"); } else if (!foc && state) { state = false; @@ -21,6 +22,9 @@ export function set(foc) { } $(document).mousemove(function (event) { + if (!state) return; + if (UI.getActivePage() == "pageLoading") return; + if (UI.getActivePage() == "pageAccount" && state == true) return; if ( $("#top").hasClass("focus") && (event.originalEvent.movementX > 0 || event.originalEvent.movementY > 0) diff --git a/src/js/test/test-logic.js b/src/js/test/test-logic.js index 69fba5111..723aef90a 100644 --- a/src/js/test/test-logic.js +++ b/src/js/test/test-logic.js @@ -590,7 +590,7 @@ export function restart( }, 125, async () => { - Focus.set(false); + if (UI.getActivePage() == "pageTest") Focus.set(false); TestUI.focusWords(); $("#monkey .fast").stop(true, true).css("opacity", 0); $("#monkey").stop(true, true).css({ animationDuration: "0s" }); diff --git a/src/js/ui.js b/src/js/ui.js index b476b6852..f20ee27ff 100644 --- a/src/js/ui.js +++ b/src/js/ui.js @@ -184,20 +184,12 @@ export function changePage(page, norestart = false) { } else { setPageTransition(true); TestLogic.restart(); - swapElements( - activePageElement, - $(".page.pageAccount"), - 250, - () => { - setPageTransition(false); - history.pushState("account", null, "account"); - $(".page.pageAccount").addClass("active"); - activePage = "pageAccount"; - }, - () => { - SignOutButton.show(); - } - ); + swapElements(activePageElement, $(".page.pageAccount"), 250, () => { + setPageTransition(false); + history.pushState("account", null, "account"); + $(".page.pageAccount").addClass("active"); + activePage = "pageAccount"; + }); Funbox.activate("none"); Account.update(); TestConfig.hide();