Selaa lähdekoodia

ref: remove feature preInit

Sv443 1 vuosi sitten
vanhempi
commit
19ead5072d
3 muutettua tiedostoa jossa 14 lisäystä ja 30 poistoa
  1. 4 9
      src/features/input.ts
  2. 5 10
      src/features/songLists.ts
  3. 5 11
      src/index.ts

+ 4 - 9
src/features/input.ts

@@ -1,19 +1,14 @@
 import { clamp } from "@sv443-network/userutils";
 import { error, getVideoTime, info, log, warn, videoSelector } from "../utils";
-import type { Domain, FeatureConfig } from "../types";
+import type { Domain } from "../types";
 import { isCfgMenuOpen } from "../menu/menu_old";
 import { disableBeforeUnload } from "./behavior";
 import { siteEvents } from "../siteEvents";
 import { featInfo } from "./index";
+import { getFeatures } from "../config";
 
 export const inputIgnoreTagNames = ["INPUT", "TEXTAREA", "SELECT", "BUTTON", "A"];
 
-let features: FeatureConfig;
-
-export function setInputConfig(feats: FeatureConfig) {
-  features = feats;
-}
-
 //#MARKER arrow key skip
 
 export async function initArrowKeySkip() {
@@ -27,7 +22,7 @@ export async function initArrowKeySkip() {
     evt.preventDefault();
     evt.stopImmediatePropagation();
 
-    let skipBy = features.arrowKeySkipBy ?? featInfo.arrowKeySkipBy.default;
+    let skipBy = getFeatures().arrowKeySkipBy ?? featInfo.arrowKeySkipBy.default;
     if(evt.code === "ArrowLeft")
       skipBy *= -1;
 
@@ -50,7 +45,7 @@ let siteSwitchEnabled = true;
 /** Initializes the site switch feature */
 export async function initSiteSwitch(domain: Domain) {
   document.addEventListener("keydown", (e) => {
-    const hotkey = features.switchSitesHotkey;
+    const hotkey = getFeatures().switchSitesHotkey;
     if(siteSwitchEnabled && e.code === hotkey.code && e.shiftKey === hotkey.shift && e.ctrlKey === hotkey.ctrl && e.altKey === hotkey.alt)
       switchSite(domain === "yt" ? "ytm" : "yt");
   });

+ 5 - 10
src/features/songLists.ts

@@ -4,15 +4,10 @@ import { SiteEventsMap, siteEvents } from "../siteEvents";
 import { emitInterface } from "../interface";
 import { fetchLyricsUrlTop, createLyricsBtn, sanitizeArtists, sanitizeSong, splitVideoTitle } from "./lyrics";
 import { getLyricsCacheEntry } from "./lyricsCache";
-import type { FeatureConfig, LyricsCacheEntry } from "../types";
+import type { LyricsCacheEntry } from "../types";
+import { getFeatures } from "../config";
 import "./songLists.css";
 
-let features: FeatureConfig;
-
-export function setSongListsConfig(feats: FeatureConfig) {
-  features = feats;
-}
-
 /** Initializes the queue buttons */
 export async function initQueueButtons() {
   const addCurrentQueueBtns = (
@@ -61,7 +56,7 @@ export async function initQueueButtons() {
     "ytmusic-section-list-renderer[main-page-type=\"MUSIC_PAGE_TYPE_ARTIST\"] ytmusic-shelf-renderer #contents",
   ];
 
-  if(features.listButtonsPlacement === "everywhere") {
+  if(getFeatures().listButtonsPlacement === "everywhere") {
     for(const selector of listSelectors) {
       onSelectorOld(selector, {
         all: true,
@@ -100,7 +95,7 @@ async function addQueueButtons(
   //#SECTION lyrics btn
   let lyricsBtnElem: HTMLAnchorElement | undefined;
 
-  if(features.lyricsQueueButton) {
+  if(getFeatures().lyricsQueueButton) {
     lyricsBtnElem = await createLyricsBtn(undefined, false);
 
     lyricsBtnElem.ariaLabel = lyricsBtnElem.title = t("open_lyrics");
@@ -205,7 +200,7 @@ async function addQueueButtons(
   //#SECTION delete from queue btn
   let deleteBtnElem: HTMLAnchorElement | undefined;
 
-  if(features.deleteFromQueueButton) {
+  if(getFeatures().deleteFromQueueButton) {
     deleteBtnElem = document.createElement("a");
     deleteBtnElem.ariaLabel = deleteBtnElem.title = (listType === "currentQueue" ? t("remove_from_queue") : t("delete_from_list"));
     deleteBtnElem.classList.add("ytmusic-player-bar", "bytm-delete-from-queue", "bytm-generic-btn");

+ 5 - 11
src/index.ts

@@ -8,8 +8,6 @@ import { emitInterface, initInterface } from "./interface";
 import { addWelcomeMenu, showWelcomeMenu } from "./menu/welcomeMenu";
 import { initObservers, observers } from "./observers";
 import {
-  // features:
-  featInfo,
   // layout
   addWatermark, removeUpgradeTab,
   removeShareTrackingParam, fixSpacing,
@@ -17,21 +15,21 @@ import {
   // volume
   initVolumeFeatures,
   // song lists
-  setSongListsConfig, initQueueButtons,
+  initQueueButtons,
   // behavior
   initBeforeUnloadHook, disableBeforeUnload,
   initAutoCloseToasts, initRememberSongTime,
   disableDarkReader,
   // input
-  setInputConfig, initArrowKeySkip,
-  initSiteSwitch, addAnchorImprovements,
-  initNumKeysSkip,
+  initArrowKeySkip, initSiteSwitch,
+  addAnchorImprovements, initNumKeysSkip,
   // lyrics
   addMediaCtrlLyricsBtn,
   // menu
   addConfigMenuOption,
   // other
-  initVersionCheck, initLyricsCache,
+  featInfo, initVersionCheck,
+  initLyricsCache,
 } from "./features/index";
 
 {
@@ -87,10 +85,6 @@ async function init() {
     await initTranslations(features.locale ?? "en_US");
     setLocale(features.locale ?? "en_US");
 
-    // TODO(v1.2): remove these
-    setInputConfig(features);
-    setSongListsConfig(features);
-
     if(features.disableBeforeUnloadPopup && domain === "ytm")
       disableBeforeUnload();