mirror of https://github.com/halo-dev/halo
fix: resolve issue with editor not detecting image paste in Firefox (#6693)
#### What type of PR is this? /area ui /kind bug /milestone 2.20.x #### What this PR does / why we need it: 修复在 FireFox 浏览器下的编辑器中无法通过粘贴文件上传的问题。 #### Which issue(s) this PR fixes: Fixes #6684 #### Special notes for your reviewer: 在 FireFox 浏览器中,复制一张本地的图片,尝试在编辑器中粘贴,观察是否上传成功。 #### Does this PR introduce a user-facing change? ```release-note 修复在 FireFox 浏览器下的编辑器中无法通过粘贴文件上传的问题。 ```pull/6703/head^2
parent
9305fd51d8
commit
774678fd65
|
@ -4,7 +4,10 @@ import {
|
||||||
Plugin,
|
Plugin,
|
||||||
PluginKey,
|
PluginKey,
|
||||||
} from "@halo-dev/richtext-editor";
|
} from "@halo-dev/richtext-editor";
|
||||||
import { handleFileEvent } from "../../utils/upload";
|
import {
|
||||||
|
containsFileClipboardIdentifier,
|
||||||
|
handleFileEvent,
|
||||||
|
} from "../../utils/upload";
|
||||||
|
|
||||||
export const Upload = Extension.create({
|
export const Upload = Extension.create({
|
||||||
name: "upload",
|
name: "upload",
|
||||||
|
@ -26,7 +29,8 @@ export const Upload = Extension.create({
|
||||||
}
|
}
|
||||||
|
|
||||||
const types = event.clipboardData.types;
|
const types = event.clipboardData.types;
|
||||||
if (!(types.length === 1 && types[0].toLowerCase() === "files")) {
|
|
||||||
|
if (!containsFileClipboardIdentifier(types)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,3 +142,8 @@ export function fileToBase64(file: File): Promise<string> {
|
||||||
reader.readAsDataURL(file);
|
reader.readAsDataURL(file);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function containsFileClipboardIdentifier(types: readonly string[]) {
|
||||||
|
const fileTypes = ["files", "application/x-moz-file", "public.file-url"];
|
||||||
|
return types.some((type) => fileTypes.includes(type.toLowerCase()));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue