fix: Prevent drag event from being ignored (#3677)

This commit is contained in:
Matthew Mullin 2023-02-09 03:12:54 -08:00 committed by GitHub
parent 33ef3f0988
commit 2b6e4e3691
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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',
() => {