Browse Source

ref: implement reloadTab()

Sv443 5 months ago
parent
commit
1e341455a3
6 changed files with 15 additions and 14 deletions
  1. 2 2
      src/config.ts
  2. 2 2
      src/dialogs/importCfg.ts
  3. 2 2
      src/features/index.ts
  4. 3 3
      src/index.ts
  5. 4 4
      src/menu/menu_old.ts
  6. 2 1
      src/serializer.ts

+ 2 - 2
src/config.ts

@@ -1,6 +1,6 @@
 import { DataStore, compress, type DataMigrationsDict, decompress, type LooseUnion, clamp } from "@sv443-network/userutils";
 import { DataStore, compress, type DataMigrationsDict, decompress, type LooseUnion, clamp } from "@sv443-network/userutils";
 import { disableBeforeUnload, featInfo } from "./features/index.js";
 import { disableBeforeUnload, featInfo } from "./features/index.js";
-import { compressionSupported, error, getVideoTime, info, log, t, type TrLocale } from "./utils/index.js";
+import { compressionSupported, error, getVideoTime, info, log, reloadTab, t, type TrLocale } from "./utils/index.js";
 import { emitSiteEvent } from "./siteEvents.js";
 import { emitSiteEvent } from "./siteEvents.js";
 import { compressionFormat } from "./constants.js";
 import { compressionFormat } from "./constants.js";
 import { emitInterface } from "./interface.js";
 import { emitInterface } from "./interface.js";
@@ -264,7 +264,7 @@ export async function promptResetConfig() {
       location.replace(url.href);
       location.replace(url.href);
     }
     }
     else
     else
-      location.reload();
+      await reloadTab();
   }
   }
 }
 }
 
 

+ 2 - 2
src/dialogs/importCfg.ts

@@ -1,4 +1,4 @@
-import { error, tryToDecompressAndParse, t, warn, log } from "../utils/index.js";
+import { error, tryToDecompressAndParse, t, warn, log, reloadTab } from "../utils/index.js";
 import { BytmDialog } from "../components/index.js";
 import { BytmDialog } from "../components/index.js";
 import { scriptInfo } from "../constants.js";
 import { scriptInfo } from "../constants.js";
 import { emitSiteEvent } from "../siteEvents.js";
 import { emitSiteEvent } from "../siteEvents.js";
@@ -109,7 +109,7 @@ async function renderFooter() {
 
 
       if(await showPrompt({ type: "confirm", message: t("import_success_confirm_reload") })) {
       if(await showPrompt({ type: "confirm", message: t("import_success_confirm_reload") })) {
         disableBeforeUnload();
         disableBeforeUnload();
-        return location.reload();
+        return reloadTab();
       }
       }
 
 
       emitSiteEvent("rebuildCfgMenu", parsed.data);
       emitSiteEvent("rebuildCfgMenu", parsed.data);

+ 2 - 2
src/features/index.ts

@@ -1,4 +1,4 @@
-import { formatNumber, getLocale, getPreferredLocale, getResourceUrl, resourceAsString, t, tp } from "../utils/index.js";
+import { formatNumber, getLocale, getPreferredLocale, getResourceUrl, reloadTab, resourceAsString, t, tp } from "../utils/index.js";
 import { clearLyricsCache, getLyricsCache } from "./lyricsCache.js";
 import { clearLyricsCache, getLyricsCache } from "./lyricsCache.js";
 import { doVersionCheck } from "./versionCheck.js";
 import { doVersionCheck } from "./versionCheck.js";
 import { getFeature, promptResetConfig } from "../config.js";
 import { getFeature, promptResetConfig } from "../config.js";
@@ -785,7 +785,7 @@ export const featInfo = {
         message: t("reset_everything_confirm"),
         message: t("reset_everything_confirm"),
       })) {
       })) {
         await getStoreSerializer().resetStoresData();
         await getStoreSerializer().resetStoresData();
-        location.reload();
+        await reloadTab();
       }
       }
     },
     },
     advanced: true,
     advanced: true,

+ 3 - 3
src/index.ts

@@ -1,5 +1,5 @@
 import { compress, decompress, pauseFor, type Stringifiable } from "@sv443-network/userutils";
 import { compress, decompress, pauseFor, type Stringifiable } from "@sv443-network/userutils";
-import { addStyle, addStyleFromResource, domLoaded, getResourceUrl, setGlobalCssVars, warn } from "./utils/index.js";
+import { addStyle, addStyleFromResource, domLoaded, getResourceUrl, reloadTab, setGlobalCssVars, warn } from "./utils/index.js";
 import { clearConfig, fixCfgKeys, getFeatures, initConfig, setFeatures } from "./config.js";
 import { clearConfig, fixCfgKeys, getFeatures, initConfig, setFeatures } from "./config.js";
 import { buildNumber, compressionFormat, defaultLogLevel, mode, scriptInfo } from "./constants.js";
 import { buildNumber, compressionFormat, defaultLogLevel, mode, scriptInfo } from "./constants.js";
 import { dbg, error, getDomain, info, getSessionId, log, setLogLevel, initTranslations, setLocale } from "./utils/index.js";
 import { dbg, error, getDomain, info, getSessionId, log, setLogLevel, initTranslations, setLocale } from "./utils/index.js";
@@ -382,7 +382,7 @@ function registerDevCommands() {
     if(confirm("Reset the configuration to its default values?\nThis will automatically reload the page.")) {
     if(confirm("Reset the configuration to its default values?\nThis will automatically reload the page.")) {
       await clearConfig();
       await clearConfig();
       disableBeforeUnload();
       disableBeforeUnload();
-      location.reload();
+      await reloadTab();
     }
     }
   }, "r");
   }, "r");
 
 
@@ -391,7 +391,7 @@ function registerDevCommands() {
     await setFeatures(fixCfgKeys(oldFeats));
     await setFeatures(fixCfgKeys(oldFeats));
     dbg("Fixed missing or extraneous config values.\nFrom:", oldFeats, "\n\nTo:", getFeatures());
     dbg("Fixed missing or extraneous config values.\nFrom:", oldFeats, "\n\nTo:", getFeatures());
     if(confirm("All missing or config values were set to their default values and extraneous ones were removed.\nDo you want to reload the page now?"))
     if(confirm("All missing or config values were set to their default values and extraneous ones were removed.\nDo you want to reload the page now?"))
-      location.reload();
+      await reloadTab();
   });
   });
 
 
   GM.registerMenuCommand("List GM values in console with decompression", async () => {
   GM.registerMenuCommand("List GM values in console with decompression", async () => {

+ 4 - 4
src/menu/menu_old.ts

@@ -2,7 +2,7 @@ import { compress, debounce, isScrollable, type Stringifiable } from "@sv443-net
 import { type defaultData, formatVersion, getFeature, getFeatures, migrations, setFeatures } from "../config.js";
 import { type defaultData, formatVersion, getFeature, getFeatures, migrations, setFeatures } from "../config.js";
 import { buildNumber, compressionFormat, host, mode, scriptInfo } from "../constants.js";
 import { buildNumber, compressionFormat, host, mode, scriptInfo } from "../constants.js";
 import { featInfo, disableBeforeUnload } from "../features/index.js";
 import { featInfo, disableBeforeUnload } from "../features/index.js";
-import { error, getResourceUrl, info, log, resourceAsString, getLocale, hasKey, initTranslations, setLocale, t, arrayWithSeparators, tp, type TrKey, onInteraction, getDomain, copyToClipboard, warn, compressionSupported, tryToDecompressAndParse, setInnerHtml, type TrLocale, tl } from "../utils/index.js";
+import { error, getResourceUrl, info, log, resourceAsString, getLocale, hasKey, initTranslations, setLocale, t, arrayWithSeparators, tp, type TrKey, onInteraction, getDomain, copyToClipboard, warn, compressionSupported, tryToDecompressAndParse, setInnerHtml, type TrLocale, tl, reloadTab } from "../utils/index.js";
 import { emitSiteEvent, siteEvents } from "../siteEvents.js";
 import { emitSiteEvent, siteEvents } from "../siteEvents.js";
 import { getChangelogDialog, getFeatHelpDialog, showPrompt } from "../dialogs/index.js";
 import { getChangelogDialog, getFeatHelpDialog, showPrompt } from "../dialogs/index.js";
 import type { FeatureCategory, FeatureKey, FeatureConfig, HotkeyObj, FeatureInfo } from "../types.js";
 import type { FeatureCategory, FeatureKey, FeatureConfig, HotkeyObj, FeatureInfo } from "../types.js";
@@ -185,7 +185,7 @@ async function mountCfgMenu() {
   reloadTxtEl.addEventListener("click", () => {
   reloadTxtEl.addEventListener("click", () => {
     closeCfgMenu();
     closeCfgMenu();
     disableBeforeUnload();
     disableBeforeUnload();
-    location.reload();
+    reloadTab();
   });
   });
 
 
   reloadFooterEl.appendChild(reloadTxtEl);
   reloadFooterEl.appendChild(reloadTxtEl);
@@ -244,7 +244,7 @@ async function mountCfgMenu() {
 
 
         if(await showPrompt({ type: "confirm", message: t("import_success_confirm_reload") })) {
         if(await showPrompt({ type: "confirm", message: t("import_success_confirm_reload") })) {
           disableBeforeUnload();
           disableBeforeUnload();
-          return location.reload();
+          return reloadTab();
         }
         }
 
 
         exImDlg.unmount();
         exImDlg.unmount();
@@ -333,7 +333,7 @@ async function mountCfgMenu() {
         })) {
         })) {
           closeCfgMenu();
           closeCfgMenu();
           disableBeforeUnload();
           disableBeforeUnload();
-          location.reload();
+          reloadTab();
         }
         }
       }
       }
       else if(getLocale() !== featConf.locale)
       else if(getLocale() !== featConf.locale)

+ 2 - 1
src/serializer.ts

@@ -6,6 +6,7 @@ import { showPrompt } from "./dialogs/prompt.js";
 import { t } from "./utils/translations.js";
 import { t } from "./utils/translations.js";
 import { error } from "./utils/logging.js";
 import { error } from "./utils/logging.js";
 import { downloadFile } from "./utils/dom.js";
 import { downloadFile } from "./utils/dom.js";
+import { reloadTab } from "./utils/misc.js";
 import packageJson from "../package.json" with { type: "json" };
 import packageJson from "../package.json" with { type: "json" };
 
 
 /** Central serializer for all data stores */
 /** Central serializer for all data stores */
@@ -38,7 +39,7 @@ export async function importData(blob: File | Blob) {
       message: t("import_success_confirm_reload"),
       message: t("import_success_confirm_reload"),
     });
     });
 
 
-    reload && location.reload();
+    reload && await reloadTab();
   }
   }
   catch(err) {
   catch(err) {
     error(err);
     error(err);