From 89ca49861346831332a20a40e083d5da8f18888f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D1=97=D0=BB=20=D0=93=D1=80=D0=B8?= =?UTF-8?q?=D0=B3=D0=BE=D1=80=27=D1=94=D0=B2?= Date: Fri, 26 Jul 2024 16:24:20 +0300 Subject: [PATCH] Remove some legacy browser support code Includes prefixed document.hidden property with respective visibilitychanged event and redundant support for navigator.language / lack of navigator.languages check. --- src/js/application.js | 20 ++------------------ src/js/translations.js | 17 +++++------------ 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/src/js/application.js b/src/js/application.js index 4e04e9c7..0985bd15 100644 --- a/src/js/application.js +++ b/src/js/application.js @@ -36,22 +36,6 @@ import { SettingsState } from "./states/settings"; const logger = createLogger("application"); -// Set the name of the hidden property and the change event for visibility -let pageHiddenPropName, pageVisibilityEventName; -if (typeof document.hidden !== "undefined") { - // Opera 12.10 and Firefox 18 and later support - pageHiddenPropName = "hidden"; - pageVisibilityEventName = "visibilitychange"; - // @ts-ignore -} else if (typeof document.msHidden !== "undefined") { - pageHiddenPropName = "msHidden"; - pageVisibilityEventName = "msvisibilitychange"; - // @ts-ignore -} else if (typeof document.webkitHidden !== "undefined") { - pageHiddenPropName = "webkitHidden"; - pageVisibilityEventName = "webkitvisibilitychange"; -} - export class Application { /** * Boots the application @@ -176,7 +160,7 @@ export class Application { // Unload events window.addEventListener("beforeunload", this.onBeforeUnload.bind(this), true); - document.addEventListener(pageVisibilityEventName, this.handleVisibilityChange.bind(this), false); + document.addEventListener("visibilitychange", this.handleVisibilityChange.bind(this), false); // Track touches so we can update the focus appropriately document.addEventListener("touchstart", this.updateFocusAfterUserInteraction.bind(this), true); @@ -217,7 +201,7 @@ export class Application { */ handleVisibilityChange(event) { window.focus(); - const pageVisible = !document[pageHiddenPropName]; + const pageVisible = !document.hidden; if (pageVisible !== this.pageVisible) { this.pageVisible = pageVisible; logger.log("Visibility changed:", this.pageVisible); diff --git a/src/js/translations.js b/src/js/translations.js index f79ea103..c6630497 100644 --- a/src/js/translations.js +++ b/src/js/translations.js @@ -7,7 +7,7 @@ const logger = createLogger("translations"); // @ts-ignore import baseTranslations from "./built-temp/base-en.json"; -export let T = baseTranslations; +export const T = baseTranslations; if (G_IS_DEV && globalConfig.debug.testTranslations) { // Replaces all translations by fake translations to see whats translated and what not @@ -67,18 +67,11 @@ function mapLanguageCodeToId(languageKey) { * @returns {string} */ export function autoDetectLanguageId() { - let languages = []; - if (navigator.languages) { - languages = navigator.languages.slice(); - } else if (navigator.language) { - languages = [navigator.language]; - } else { - logger.warn("Navigator has no languages prop"); - } + const languages = navigator.languages; - for (let i = 0; i < languages.length; ++i) { - logger.log("Trying to find language target for", languages[i]); - const trans = mapLanguageCodeToId(languages[i]); + for (const language of languages) { + logger.log("Trying to find language target for", language); + const trans = mapLanguageCodeToId(language); if (trans) { return trans; }