🐛 macos 无法粘贴文件夹

This commit is contained in:
Vanessa 2022-08-23 20:57:39 +08:00
parent 3387b01b70
commit 5ef314e148

View file

@ -2,6 +2,9 @@ import {Constants} from "../../constants";
import {uploadFiles, uploadLocalFiles} from "../upload"; import {uploadFiles, uploadLocalFiles} from "../upload";
import {processPasteCode, processRender} from "./processCode"; import {processPasteCode, processRender} from "./processCode";
import {writeText} from "./compatibility"; import {writeText} from "./compatibility";
/// #if !BROWSER
import {clipboard} from "electron";
/// #endif
import {hasClosestBlock} from "./hasClosest"; import {hasClosestBlock} from "./hasClosest";
import {focusByWbr, getEditorRange} from "./selection"; import {focusByWbr, getEditorRange} from "./selection";
import {blockRender} from "../markdown/blockRender"; import {blockRender} from "../markdown/blockRender";
@ -82,7 +85,19 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
} }
} }
/// #if !MOBILE /// #if !MOBILE
if (!textHTML && !textPlain && ("clipboardData" in event) && "darwin" !== window.siyuan.config.system.os) { if (!textHTML && !textPlain && ("clipboardData" in event)) {
if ("darwin" === window.siyuan.config.system.os) {
const xmlString = clipboard.read("NSFilenamesPboardType");
const domParser = new DOMParser();
const xmlDom = domParser.parseFromString(xmlString, "application/xml");
const localFiles: string[] = [];
Array.from(xmlDom.getElementsByTagName("string")).forEach(item => {
localFiles.push(item.childNodes[0].nodeValue);
});
uploadLocalFiles(localFiles, protyle);
writeText("");
return;
} else {
const xmlString = await fetchSyncPost("/api/clipboard/readFilePaths", {}); const xmlString = await fetchSyncPost("/api/clipboard/readFilePaths", {});
if (xmlString.data.length > 0) { if (xmlString.data.length > 0) {
uploadLocalFiles(xmlString.data, protyle); uploadLocalFiles(xmlString.data, protyle);
@ -90,6 +105,7 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
return; return;
} }
} }
}
/// #endif /// #endif
// 浏览器地址栏拷贝处理 // 浏览器地址栏拷贝处理