diff --git a/packages/editor/src/core/extensions/custom-image/components/image-node.tsx b/packages/editor/src/core/extensions/custom-image/components/image-node.tsx index b65d890f56..17aa0b90c4 100644 --- a/packages/editor/src/core/extensions/custom-image/components/image-node.tsx +++ b/packages/editor/src/core/extensions/custom-image/components/image-node.tsx @@ -72,8 +72,12 @@ export const CustomImageNode = (props: CustomImageNodeViewProps) => { if (uploadEntity.event === "drop" && "file" in uploadEntity) { uploadFile(uploadEntity.file); } else if (uploadEntity.event === "insert" && fileInputRef.current && !hasTriggeredFilePickerRef.current) { + const entity = editorStorage?.fileMap.get(id); + if (entity && entity.hasOpenedFileInputOnce) return; fileInputRef.current.click(); hasTriggeredFilePickerRef.current = true; + if (!entity) return; + editorStorage?.fileMap.set(id, { ...entity, hasOpenedFileInputOnce: true }); } } }, [getUploadEntity, uploadFile]); diff --git a/packages/editor/src/core/extensions/custom-image/custom-image.ts b/packages/editor/src/core/extensions/custom-image/custom-image.ts index 4f0b96e7e8..ee942c1bd7 100644 --- a/packages/editor/src/core/extensions/custom-image/custom-image.ts +++ b/packages/editor/src/core/extensions/custom-image/custom-image.ts @@ -22,7 +22,7 @@ export interface UploadImageExtensionStorage { fileMap: Map; } -export type UploadEntity = { event: "insert" } | { event: "drop"; file: File }; +export type UploadEntity = ({ event: "insert" } | { event: "drop"; file: File }) & { hasOpenedFileInputOnce: boolean }; export const CustomImageExtension = (props: TFileHandler) => { const { upload } = props; @@ -46,12 +46,6 @@ export const CustomImageExtension = (props: TFileHandler) => { height: { default: "auto", }, - ["data-type"]: { - default: this.name, - }, - ["data-file"]: { - default: null, - }, ["id"]: { default: null, }, @@ -63,6 +57,9 @@ export const CustomImageExtension = (props: TFileHandler) => { { tag: "image-component", }, + { + tag: "img", + }, ]; }, @@ -101,9 +98,7 @@ export const CustomImageExtension = (props: TFileHandler) => { } const attributes = { - "data-type": this.name, id: fileId, - "data-file": props.file ? `data-file="${props.file}"` : "", }; if (props.pos) { diff --git a/packages/editor/src/core/extensions/custom-image/read-only-custom-image.ts b/packages/editor/src/core/extensions/custom-image/read-only-custom-image.ts index 7ffd4fba8b..eb75de63c8 100644 --- a/packages/editor/src/core/extensions/custom-image/read-only-custom-image.ts +++ b/packages/editor/src/core/extensions/custom-image/read-only-custom-image.ts @@ -24,12 +24,6 @@ export const CustomReadOnlyImageExtension = () => height: { default: "auto", }, - ["data-type"]: { - default: this.name, - }, - ["data-file"]: { - default: null, - }, ["id"]: { default: null, },