Ver código fonte

ref: rename icon

Sv443 7 meses atrás
pai
commit
fc843c49e6
2 arquivos alterados com 8 adições e 4 exclusões
  1. 1 1
      assets/resources.json
  2. 7 3
      src/dialogs/prompt.ts

+ 1 - 1
assets/resources.json

@@ -15,7 +15,6 @@
   "icon-auto_like_enabled": "icons/auto_like_enabled.svg",
   "icon-auto_like": "icons/auto_like.svg",
   "icon-clear_list": "icons/clear_list.svg",
-  "icon-confirm": "icons/help.svg",
   "icon-copy": "icons/copy.svg",
   "icon-delete": "icons/delete.svg",
   "icon-edit": "icons/edit.svg",
@@ -28,6 +27,7 @@
   "icon-image": "icons/image.svg",
   "icon-link": "icons/link.svg",
   "icon-lyrics": "icons/lyrics.svg",
+  "icon-prompt": "icons/help.svg",
   "icon-reload": "icons/refresh.svg",
   "icon-skip_to": "icons/skip_to.svg",
   "icon-spinner": "icons/spinner.svg",

+ 7 - 3
src/dialogs/prompt.ts

@@ -59,7 +59,7 @@ class PromptDialog extends BytmDialog {
   protected async renderHeader({ type }: PromptDialogRenderProps) {
     const headerEl = document.createElement("div");
     headerEl.id = "bytm-prompt-dialog-header";
-    const iconSvg = await resourceAsString(type === "alert" ? "icon-alert" : "icon-confirm");
+    const iconSvg = await resourceAsString(type === "alert" ? "icon-alert" : "icon-prompt");
     if(iconSvg)
       setInnerHtml(headerEl, iconSvg);
 
@@ -172,22 +172,26 @@ export function showPrompt({ type, ...rest }: PromptDialogRenderProps): Promise<
     let resolveVal: boolean | string | null | undefined;
     const tryResolve = () => resolve(typeof resolveVal !== "undefined" ? resolveVal : false);
 
+    let closeUnsub: (() => void) | undefined; // eslint-disable-line prefer-const
+
     const resolveUnsub = promptDialog.on("resolve" as "_", (val: boolean | string | null) => {
       resolveUnsub();
       if(resolveVal !== undefined)
         return;
       resolveVal = val;
       tryResolve();
+      closeUnsub?.();
     });
 
-    const closeUnsub = promptDialog.on("close", () => {
-      closeUnsub();
+    closeUnsub = promptDialog.on("close", () => {
+      closeUnsub!();
       if(resolveVal !== undefined)
         return;
       resolveVal = type === "alert";
       if(type === "prompt")
         resolveVal = null;
       tryResolve();
+      resolveUnsub();
     });
 
     promptDialog.open();