From e2e9daee47eec01c65d62655549b119fcadb86bc Mon Sep 17 00:00:00 2001 From: Matthew Mullin Date: Tue, 7 Feb 2023 10:17:27 -0800 Subject: [PATCH] fix: Prevent drag event from being ignored --- packages/core/src/NodeView.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/core/src/NodeView.ts b/packages/core/src/NodeView.ts index 6d409b21529..393e7225ca6 100644 --- a/packages/core/src/NodeView.ts +++ b/packages/core/src/NodeView.ts @@ -113,11 +113,12 @@ export class NodeView< return false } + const isDragEvent = event.type.startsWith('drag') const isDropEvent = event.type === 'drop' const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable // any input event within node views should be ignored by ProseMirror - if (isInput && !isDropEvent) { + if (isInput && !isDropEvent && !isDragEvent) { return true } @@ -129,7 +130,6 @@ export class NodeView< const isPasteEvent = event.type === 'paste' const isCutEvent = event.type === 'cut' const isClickEvent = event.type === 'mousedown' - const isDragEvent = event.type.startsWith('drag') // ProseMirror tries to drag selectable nodes // even if `draggable` is set to `false` @@ -159,6 +159,14 @@ export class NodeView< { once: true }, ) + document.addEventListener( + 'drop', + () => { + this.isDragging = false + }, + { once: true }, + ) + document.addEventListener( 'mouseup', () => {