From 87bccec882b3ed74017ddcad3c75d6ced6a25881 Mon Sep 17 00:00:00 2001 From: fantasticit Date: Wed, 21 Dec 2022 16:54:22 +0800 Subject: [PATCH] fix paste file --- packages/client/src/tiptap/core/extensions/paste.ts | 9 ++------- packages/client/src/tiptap/prose-utils/position.ts | 7 +++++++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/client/src/tiptap/core/extensions/paste.ts b/packages/client/src/tiptap/core/extensions/paste.ts index 80dbe07f..424c73dc 100644 --- a/packages/client/src/tiptap/core/extensions/paste.ts +++ b/packages/client/src/tiptap/core/extensions/paste.ts @@ -14,14 +14,9 @@ import { isMarkdown, isValidURL, normalizeMarkdown, + safePos, } from 'tiptap/prose-utils'; -const safePos = (state: EditorState, pos) => { - if (pos < 0) return 0; - - return Math.min(state.doc.content.size, pos); -}; - const htmlToProsemirror = (editor: CoreEditor, html, isPasteMarkdown = false) => { const firstNode = editor.view.state.doc.content.firstChild; const shouldInsertTitleText = !!(firstNode?.textContent?.length <= 0 ?? true); @@ -188,7 +183,7 @@ export const Paste = Extension.create({ const vscodeMeta = vscode ? JSON.parse(vscode) : undefined; const pasteCodeLanguage = vscodeMeta?.mode; - if (html.length > 0 || text.length === 0) { + if (html.length > 0) { return htmlToProsemirror(editor, html); } diff --git a/packages/client/src/tiptap/prose-utils/position.ts b/packages/client/src/tiptap/prose-utils/position.ts index 46c62e44..c5db1225 100644 --- a/packages/client/src/tiptap/prose-utils/position.ts +++ b/packages/client/src/tiptap/prose-utils/position.ts @@ -1,4 +1,5 @@ /* Copyright 2021, Milkdown by Mirone. */ +import { EditorState } from 'prosemirror-state'; import type { EditorView } from 'prosemirror-view'; type Point = [top: number, left: number]; @@ -59,3 +60,9 @@ export const calculateTextPosition = ( target.style.top = top + 'px'; target.style.left = left + 'px'; }; + +export const safePos = (state: EditorState, pos) => { + if (pos < 0) return 0; + + return Math.min(state.doc.content.size, pos); +};