mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-08 19:23:14 +08:00
This commit is contained in:
parent
69460273e1
commit
a7d0fefff1
@ -20,6 +20,10 @@ import {Editor} from "../../editor";
|
|||||||
import {blockRender} from "../markdown/blockRender";
|
import {blockRender} from "../markdown/blockRender";
|
||||||
import {processRender} from "./processCode";
|
import {processRender} from "./processCode";
|
||||||
import {highlightRender} from "../markdown/highlightRender";
|
import {highlightRender} from "../markdown/highlightRender";
|
||||||
|
import {uploadLocalFiles} from "../upload";
|
||||||
|
import {MenuItem} from "../../menus/Menu";
|
||||||
|
import {insertHTML} from "./insertHTML";
|
||||||
|
import {pathPosix} from "../../util/pathName";
|
||||||
|
|
||||||
const dragSb = (protyle: IProtyle, sourceElements: Element[], targetElement: Element, isBottom: boolean, direct: "col" | "row") => {
|
const dragSb = (protyle: IProtyle, sourceElements: Element[], targetElement: Element, isBottom: boolean, direct: "col" | "row") => {
|
||||||
const isSameDoc = protyle.element.contains(sourceElements[0]);
|
const isSameDoc = protyle.element.contains(sourceElements[0]);
|
||||||
@ -690,7 +694,42 @@ export const dropEvent = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||||||
} else if (!window.siyuan.dragElement && (event.dataTransfer.types[0] === "Files" || event.dataTransfer.types.includes("text/html"))) {
|
} else if (!window.siyuan.dragElement && (event.dataTransfer.types[0] === "Files" || event.dataTransfer.types.includes("text/html"))) {
|
||||||
// 外部文件拖入编辑器中或者编辑器内选中文字拖拽
|
// 外部文件拖入编辑器中或者编辑器内选中文字拖拽
|
||||||
focusByRange(document.caretRangeFromPoint(event.clientX, event.clientY));
|
focusByRange(document.caretRangeFromPoint(event.clientX, event.clientY));
|
||||||
paste(protyle, event);
|
if (event.dataTransfer.types[0] === "Files") {
|
||||||
|
const files:string[] = []
|
||||||
|
let isAllFile = true
|
||||||
|
for (let i = 0; i < event.dataTransfer.files.length; i++) {
|
||||||
|
files.push(event.dataTransfer.files[i].path);
|
||||||
|
if (event.dataTransfer.files[i].type === "") {
|
||||||
|
isAllFile = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isAllFile) {
|
||||||
|
window.siyuan.menus.menu.remove();
|
||||||
|
window.siyuan.menus.menu.append(new MenuItem({
|
||||||
|
label:window.siyuan.languages.upload,
|
||||||
|
icon:"iconUpload",
|
||||||
|
click(element) {
|
||||||
|
uploadLocalFiles(files, protyle);
|
||||||
|
}
|
||||||
|
}).element);
|
||||||
|
window.siyuan.menus.menu.append(new MenuItem({
|
||||||
|
label:window.siyuan.languages.link,
|
||||||
|
icon:"iconLink",
|
||||||
|
click(element) {
|
||||||
|
let fileText = ""
|
||||||
|
files.forEach((item) => {
|
||||||
|
fileText = `[${pathPosix().basename(item)}](${item})\n`
|
||||||
|
})
|
||||||
|
insertHTML(protyle.lute.SpinBlockDOM(fileText), protyle);
|
||||||
|
}
|
||||||
|
}).element);
|
||||||
|
window.siyuan.menus.menu.popup({x: event.clientX, y: event.clientY});
|
||||||
|
} else {
|
||||||
|
uploadLocalFiles(files, protyle);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
paste(protyle, event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (window.siyuan.dragElement) {
|
if (window.siyuan.dragElement) {
|
||||||
window.siyuan.dragElement.style.opacity = "";
|
window.siyuan.dragElement.style.opacity = "";
|
||||||
|
Loading…
Reference in New Issue
Block a user