Jelajahi Sumber

ref: reorder features

Sv443 1 tahun lalu
induk
melakukan
db68615490
3 mengubah file dengan 50 tambahan dan 26 penghapusan
  1. 2 0
      src/features/index.ts
  2. 2 2
      src/features/input.ts
  3. 46 24
      src/index.ts

+ 2 - 0
src/features/index.ts

@@ -336,6 +336,8 @@ export const featInfo = {
       ctrl: false,
       alt: false,
     },
+    reloadRequired: false,
+    enable: noop,
   },
   anchorImprovements: {
     type: "toggle",

+ 2 - 2
src/features/input.ts

@@ -45,8 +45,8 @@ let siteSwitchEnabled = true;
 /** Initializes the site switch feature */
 export async function initSiteSwitch(domain: Domain) {
   document.addEventListener("keydown", (e) => {
-    const hotkey = getFeatures().switchSitesHotkey;
-    if(siteSwitchEnabled && e.code === hotkey.code && e.shiftKey === hotkey.shift && e.ctrlKey === hotkey.ctrl && e.altKey === hotkey.alt)
+    const hk = getFeatures().switchSitesHotkey;
+    if(siteSwitchEnabled && e.code === hk.code && e.shiftKey === hk.shift && e.ctrlKey === hk.ctrl && e.altKey === hk.alt)
       switchSite(domain === "yt" ? "ytm" : "yt");
   });
   siteEvents.on("hotkeyInputActive", (state) => {

+ 46 - 24
src/index.ts

@@ -133,10 +133,14 @@ async function onDomLoad() {
 
   try {
     if(domain === "ytm") {
+      //#region (ytm) misc
+
       disableDarkReader();
 
       ftInit.push(initSiteEvents());
 
+      //#region (ytm) welcome dlg
+
       if(typeof await GM.getValue("bytm-installed") !== "string") {
         // open welcome menu with language selector
         const dlg = await getWelcomeDialog();
@@ -146,48 +150,62 @@ async function onDomLoad() {
         await dlg.open();
       }
 
-      addSelectorListener("body", "tp-yt-iron-dropdown #contentWrapper ytd-multi-page-menu-renderer #container.menu-container", {
-        listener: addConfigMenuOptionYTM,
-      });
+      //#region (ytm) layout
 
-      if(features.arrowKeySupport)
-        ftInit.push(initArrowKeySkip());
+      if(features.watermarkEnabled)
+        ftInit.push(addWatermark());
+
+      if(features.fixSpacing)
+        ftInit.push(fixSpacing());
+
+      if(features.scrollToActiveSongBtn)
+        ftInit.push(addScrollToActiveBtn());
 
       if(features.removeUpgradeTab)
         ftInit.push(removeUpgradeTab());
 
-      if(features.watermarkEnabled)
-        ftInit.push(addWatermark());
+      ftInit.push(initThumbnailOverlay());
 
-      if(features.geniusLyrics)
-        ftInit.push(addMediaCtrlLyricsBtn());
+      if(features.hideCursorOnIdle)
+        ftInit.push(initHideCursorOnIdle());
 
-      if(features.deleteFromQueueButton || features.lyricsQueueButton)
+      //#region (ytm) volume
+
+      ftInit.push(initVolumeFeatures());
+
+      //#region (ytm) song lists
+
+      if(features.lyricsQueueButton || features.deleteFromQueueButton)
         ftInit.push(initQueueButtons());
 
-      if(features.anchorImprovements)
-        ftInit.push(addAnchorImprovements());
+      //#region (ytm) behavior
 
       if(features.closeToastsTimeout > 0)
         ftInit.push(initAutoCloseToasts());
 
-      if(features.numKeysSkipToTime)
-        ftInit.push(initNumKeysSkip());
+      //#region (ytm) input
 
-      if(features.fixSpacing)
-        ftInit.push(fixSpacing());
+      if(features.arrowKeySupport)
+        ftInit.push(initArrowKeySkip());
 
-      if(features.scrollToActiveSongBtn)
-        ftInit.push(addScrollToActiveBtn());
+      if(features.anchorImprovements)
+        ftInit.push(addAnchorImprovements());
 
-      ftInit.push(initThumbnailOverlay());
+      if(features.numKeysSkipToTime)
+        ftInit.push(initNumKeysSkip());
 
-      if(features.hideCursorOnIdle)
-        ftInit.push(initHideCursorOnIdle());
+      //#region (ytm) lyrics
 
-      ftInit.push(initVolumeFeatures());
+      if(features.geniusLyrics)
+        ftInit.push(addMediaCtrlLyricsBtn());
     }
 
+    //#region (ytm+yt) cfg menu option
+    if(domain === "ytm") {
+      addSelectorListener("body", "tp-yt-iron-dropdown #contentWrapper ytd-multi-page-menu-renderer #container.menu-container", {
+        listener: addConfigMenuOptionYTM,
+      });
+    }
     if(domain === "yt") {
       addSelectorListener<0, "yt">("ytGuide", "#sections ytd-guide-section-renderer:nth-child(5) #items ytd-guide-entry-renderer:nth-child(1)", {
         listener: (el) => el.parentElement && addConfigMenuOptionYT(el.parentElement),
@@ -195,12 +213,16 @@ async function onDomLoad() {
     }
 
     if(["ytm", "yt"].includes(domain)) {
-      if(features.switchBetweenSites)
-        ftInit.push(initSiteSwitch(domain));
+      //#region (ytm+yt) layout
 
       if(features.removeShareTrackingParamSites && (features.removeShareTrackingParamSites === domain || features.removeShareTrackingParamSites === "all"))
         ftInit.push(initRemShareTrackParam());
 
+      //#region (ytm+yt) input
+
+      if(features.switchBetweenSites)
+        ftInit.push(initSiteSwitch(domain));
+
       // TODO: for hot reloading features
       // ftInit.push(new Promise((resolve) => {
       //   for(const [k, v] of Object.entries(featInfo)) {