Quellcode durchsuchen

feat: fix cursor hide edge case

Sv443 vor 1 Jahr
Ursprung
Commit
b7a3d8b0f2
2 geänderte Dateien mit 10 neuen und 8 gelöschten Zeilen
  1. 4 4
      src/features/layout.ts
  2. 6 4
      src/menu/menu_old.ts

+ 4 - 4
src/features/layout.ts

@@ -1,4 +1,4 @@
-import { addParent, autoPlural, debounce, fetchAdvanced, insertAfter, openInNewTab, pauseFor } from "@sv443-network/userutils";
+import { addParent, autoPlural, fetchAdvanced, insertAfter, openInNewTab, pauseFor } from "@sv443-network/userutils";
 import { getFeatures } from "../config";
 import { siteEvents } from "../siteEvents";
 import { addSelectorListener } from "../observers";
@@ -618,15 +618,15 @@ export async function initHideCursorOnIdle() {
         cursorHideTimer = setTimeout(hide, getFeatures().hideCursorOnIdleDelay * 1000);
 
       const onMove = () => {
-        clearTimeout(cursorHideTimer);
+        cursorHideTimer && clearTimeout(cursorHideTimer);
         show();
         cursorHideTimerCb();
       };
 
       vidContainer.addEventListener("mouseenter", onMove);
-      vidContainer.addEventListener("mousemove", debounce(onMove, 10, "rising"));
+      vidContainer.addEventListener("mousemove", onMove);
       vidContainer.addEventListener("mouseleave", () => {
-        clearTimeout(cursorHideTimer);
+        cursorHideTimer && clearTimeout(cursorHideTimer);
         hide();
       });
       vidContainer.addEventListener("click", () => {

+ 6 - 4
src/menu/menu_old.ts

@@ -212,8 +212,7 @@ async function addCfgMenu() {
   const featuresCont = document.createElement("div");
   featuresCont.id = "bytm-menu-opts";
 
-  /** Gets called whenever the feature config is changed */
-  const confChanged = debounce(async (key: keyof typeof defaultData, initialVal: number | boolean | Record<string, unknown>, newVal: number | boolean | Record<string, unknown>) => {
+  const onCfgChange = async (key: keyof typeof defaultData, initialVal: number | boolean | Record<string, unknown>, newVal: number | boolean | Record<string, unknown>) => {
     const fmt = (val: unknown) => typeof val === "object" ? JSON.stringify(val) : String(val);
     info(`Feature config changed at key '${key}', from value '${fmt(initialVal)}' to '${fmt(newVal)}'`);
 
@@ -246,7 +245,10 @@ async function addCfgMenu() {
     }
     else if(getLocale() !== featConf.locale)
       setLocale(featConf.locale);
-  });
+  };
+
+  /** Call whenever the feature config is changed */
+  const confChanged = debounce(onCfgChange, 300, "rising");
 
   const featureCfg = getFeatures();
   const featureCfgWithCategories = Object.entries(featInfo)
@@ -710,7 +712,7 @@ async function addCfgMenu() {
 
   document.body.appendChild(backgroundElem);
 
-  window.addEventListener("resize", debounce(checkToggleScrollIndicator, 150));
+  window.addEventListener("resize", debounce(checkToggleScrollIndicator, 250, "rising"));
 
   log("Added menu element");