From 9a5008080a88f6600438bf749b9de71b20d9d5b7 Mon Sep 17 00:00:00 2001 From: codytseng Date: Fri, 11 Jul 2025 11:50:35 +0800 Subject: [PATCH] fix: simplify text pasting in editor and insert a new line after upload placeholder --- .../PostTextarea/ClipboardAndDropHandler.ts | 15 +++++---------- src/components/PostEditor/Uploader.tsx | 1 - 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/components/PostEditor/PostTextarea/ClipboardAndDropHandler.ts b/src/components/PostEditor/PostTextarea/ClipboardAndDropHandler.ts index 25bc8da0..a40f3878 100644 --- a/src/components/PostEditor/PostTextarea/ClipboardAndDropHandler.ts +++ b/src/components/PostEditor/PostTextarea/ClipboardAndDropHandler.ts @@ -75,15 +75,8 @@ export const ClipboardAndDropHandler = Extension.create { - const { schema } = view.state - const parts = text.split('\n') - const nodes = [] - for (let i = 0; i < parts.length; i++) { - if (i > 0) nodes.push(schema.nodes.hardBreak.create()) - if (parts[i]) nodes.push(schema.text(parts[i])) - } - const fragment = schema.nodes.paragraph.create(null, nodes) - const tr = view.state.tr.replaceSelectionWith(fragment) + const textNode = view.state.schema.text(text) + const tr = view.state.tr.replaceSelectionWith(textNode) view.dispatch(tr) }) handled = true @@ -107,7 +100,9 @@ async function uploadFile(view: EditorView, file: File, options: ClipboardAndDro const placeholder = `[Uploading "${name}"...]` const uploadingNode = view.state.schema.text(placeholder) - const tr = view.state.tr.replaceSelectionWith(uploadingNode) + const paragraph = view.state.schema.nodes.paragraph.create() + let tr = view.state.tr.replaceSelectionWith(uploadingNode) + tr = tr.insert(tr.selection.to, paragraph) view.dispatch(tr) mediaUpload diff --git a/src/components/PostEditor/Uploader.tsx b/src/components/PostEditor/Uploader.tsx index 4a731306..b580da13 100644 --- a/src/components/PostEditor/Uploader.tsx +++ b/src/components/PostEditor/Uploader.tsx @@ -53,7 +53,6 @@ export default function Uploader({ style={{ display: 'none' }} onChange={handleFileChange} accept={accept} - multiple /> )