Browse Source

:art: https://github.com/siyuan-note/siyuan/issues/12917

Vanessa 9 tháng trước cách đây
mục cha
commit
7a566e4e6d
1 tập tin đã thay đổi với 27 bổ sung4 xóa
  1. 27 4
      app/src/protyle/util/paste.ts

+ 27 - 4
app/src/protyle/util/paste.ts

@@ -221,6 +221,31 @@ export const pasteText = (protyle: IProtyle, textPlain: string, nodeElement: Ele
     scrollCenter(protyle, undefined, false, "smooth");
 };
 
+const readLocalFile = async (protyle: IProtyle, localFiles: string[]) => {
+    if (protyle && protyle.app && protyle.app.plugins) {
+        for (let i = 0; i < protyle.app.plugins.length; i++) {
+            const response: { files: string[] } = await new Promise((resolve) => {
+                const emitResult = protyle.app.plugins[i].eventBus.emit("paste", {
+                    protyle,
+                    resolve,
+                    textHTML: "",
+                    textPlain: "",
+                    siyuanHTML: "",
+                    files: localFiles
+                });
+                if (emitResult) {
+                    resolve(undefined);
+                }
+            });
+            if (response?.files) {
+                localFiles = response.files;
+            }
+        }
+    }
+    uploadLocalFiles(localFiles, protyle, true);
+    writeText("");
+}
+
 export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEvent) & { target: HTMLElement }) => {
     event.stopPropagation();
     event.preventDefault();
@@ -257,15 +282,13 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
                 localFiles.push(item.childNodes[0].nodeValue);
             });
             if (localFiles.length > 0) {
-                uploadLocalFiles(localFiles, protyle, true);
-                writeText("");
+                readLocalFile(protyle, localFiles);
                 return;
             }
         } else {
             const xmlString = await fetchSyncPost("/api/clipboard/readFilePaths", {});
             if (xmlString.data.length > 0) {
-                uploadLocalFiles(xmlString.data, protyle, true);
-                writeText("");
+                readLocalFile(protyle, xmlString.data);
                 return;
             }
         }