Browse Source

fix: better error adornment icon

Sv443 11 months ago
parent
commit
0955ec1eb5
3 changed files with 11 additions and 11 deletions
  1. 0 1
      assets/icons/error.svg
  2. 10 10
      src/features/index.ts
  3. 1 0
      src/features/volume.ts

File diff suppressed because it is too large
+ 0 - 1
assets/icons/error.svg


+ 10 - 10
src/features/index.ts

@@ -4,7 +4,6 @@ import { doVersionCheck } from "./versionCheck";
 import { mode } from "../constants";
 import { mode } from "../constants";
 import { getFeatures } from "../config";
 import { getFeatures } from "../config";
 import { FeatureInfo, type ResourceKey, type SiteSelection, type SiteSelectionOrNone } from "../types";
 import { FeatureInfo, type ResourceKey, type SiteSelection, type SiteSelectionOrNone } from "../types";
-import { volumeSharedBetweenTabsDisabled } from "./volume";
 import { emitSiteEvent } from "../siteEvents";
 import { emitSiteEvent } from "../siteEvents";
 import langMapping from "../../assets/locales.json" assert { type: "json" };
 import langMapping from "../../assets/locales.json" assert { type: "json" };
 
 
@@ -17,7 +16,10 @@ export * from "./songLists";
 export * from "./versionCheck";
 export * from "./versionCheck";
 export * from "./volume";
 export * from "./volume";
 
 
-type SelectOption = { value: number | string, label: string };
+interface SelectOption<TValue = number | string> {
+  value: TValue;
+  label: string;
+}
 
 
 //#region dependencies
 //#region dependencies
 
 
@@ -46,18 +48,18 @@ const adornments = {
   advanced: async () => getAdornHtml("bytm-advanced-mode-icon", t("advanced_mode"), "icon-advanced_mode"),
   advanced: async () => getAdornHtml("bytm-advanced-mode-icon", t("advanced_mode"), "icon-advanced_mode"),
   experimental: async () => getAdornHtml("bytm-experimental-icon", t("experimental_feature"), "icon-experimental"),
   experimental: async () => getAdornHtml("bytm-experimental-icon", t("experimental_feature"), "icon-experimental"),
   globe: async () => await resourceToHTMLString("icon-globe_small") ?? "",
   globe: async () => await resourceToHTMLString("icon-globe_small") ?? "",
-  warning: async (title: string) => getAdornHtml("bytm-warning-icon", title, "icon-error", "role=\"alert\""),
+  alert: async (title: string) => getAdornHtml("bytm-warning-icon", title, "icon-error", "role=\"alert\""),
   reloadRequired: async () => getFeatures().advancedMode ? getAdornHtml("bytm-reload-icon", t("feature_requires_reload"), "icon-reload") : undefined,
   reloadRequired: async () => getFeatures().advancedMode ? getAdornHtml("bytm-reload-icon", t("feature_requires_reload"), "icon-reload") : undefined,
 } satisfies Record<string, (...args: any[]) => Promise<string | undefined>>;
 } satisfies Record<string, (...args: any[]) => Promise<string | undefined>>;
 
 
 /** Common options for config items of type "select" */
 /** Common options for config items of type "select" */
 const options = {
 const options = {
-  siteSelection: (): { value: SiteSelection, label: string }[] => [
+  siteSelection: (): SelectOption<SiteSelection>[] => [
     { value: "all", label: t("site_selection_both_sites") },
     { value: "all", label: t("site_selection_both_sites") },
     { value: "yt", label: t("site_selection_only_yt") },
     { value: "yt", label: t("site_selection_only_yt") },
     { value: "ytm", label: t("site_selection_only_ytm") },
     { value: "ytm", label: t("site_selection_only_ytm") },
   ],
   ],
-  siteSelectionOrNone: (): { value: SiteSelectionOrNone, label: string }[] => [
+  siteSelectionOrNone: (): SelectOption<SiteSelectionOrNone>[] => [
     { value: "all", label: t("site_selection_both_sites") },
     { value: "all", label: t("site_selection_both_sites") },
     { value: "yt", label: t("site_selection_only_yt") },
     { value: "yt", label: t("site_selection_only_yt") },
     { value: "ytm", label: t("site_selection_only_ytm") },
     { value: "ytm", label: t("site_selection_only_ytm") },
@@ -261,16 +263,14 @@ export const featInfo = {
     type: "toggle",
     type: "toggle",
     category: "volume",
     category: "volume",
     default: false,
     default: false,
-    reloadRequired: false,
-    enable: noop,
-    disable: () => volumeSharedBetweenTabsDisabled,
+    textAdornment: adornments.reloadRequired,
   },
   },
   setInitialTabVolume: {
   setInitialTabVolume: {
     type: "toggle",
     type: "toggle",
     category: "volume",
     category: "volume",
     default: false,
     default: false,
     textAdornment: () => getFeatures().volumeSharedBetweenTabs
     textAdornment: () => getFeatures().volumeSharedBetweenTabs
-      ? combineAdornments([adornments.warning(t("feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible").replace(/"/g, "'")), adornments.reloadRequired])
+      ? combineAdornments([adornments.alert(t("feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible").replace(/"/g, "'")), adornments.reloadRequired])
       : adornments.reloadRequired(),
       : adornments.reloadRequired(),
   },
   },
   initialTabVolumeLevel: {
   initialTabVolumeLevel: {
@@ -282,7 +282,7 @@ export const featInfo = {
     default: 100,
     default: 100,
     unit: "%",
     unit: "%",
     textAdornment: () => getFeatures().volumeSharedBetweenTabs
     textAdornment: () => getFeatures().volumeSharedBetweenTabs
-      ? combineAdornments([adornments.warning(t("feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible").replace(/"/g, "'")), adornments.reloadRequired])
+      ? combineAdornments([adornments.alert(t("feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible").replace(/"/g, "'")), adornments.reloadRequired])
       : adornments.reloadRequired(),
       : adornments.reloadRequired(),
     reloadRequired: false,
     reloadRequired: false,
     enable: noop,
     enable: noop,

+ 1 - 0
src/features/volume.ts

@@ -210,6 +210,7 @@ async function checkSharedVolume() {
 
 
 export async function volumeSharedBetweenTabsDisabled() {
 export async function volumeSharedBetweenTabsDisabled() {
   await GM.deleteValue("bytm-shared-volume");
   await GM.deleteValue("bytm-shared-volume");
+  document.querySelector<HTMLElement>("#bytm-vol-slider-shared")?.remove();
 }
 }
 
 
 //#region initial volume
 //#region initial volume

Some files were not shown because too many files changed in this diff