Skip to content

Commit

Permalink
Revert "Fixed dragged text not being deleted after drop on another ed…
Browse files Browse the repository at this point in the history
…itor (#3279)"

This reverts commit ac626c8.
  • Loading branch information
bdbch committed Nov 4, 2022
1 parent aca6c88 commit 403b99c
Showing 1 changed file with 1 addition and 34 deletions.
35 changes: 1 addition & 34 deletions packages/core/src/PasteRule.ts
Expand Up @@ -160,9 +160,6 @@ function run(config: {
export function pasteRulesPlugin(props: { editor: Editor, rules: PasteRule[] }): Plugin[] {
const { editor, rules } = props
let dragSourceElement: Element | null = null
let draggedElement: any
let draggedText: Selection | null = null
let caretOffset: number | undefined
let isPastedFromProseMirror = false
let isDroppedFromProseMirror = false

Expand All @@ -171,55 +168,25 @@ export function pasteRulesPlugin(props: { editor: Editor, rules: PasteRule[] }):
// we register a global drag handler to track the current drag source element
view(view) {
const handleDragstart = (event: DragEvent) => {
draggedElement = event.target
draggedText = window.getSelection()
event.dataTransfer?.setData('text/plain', draggedText?.toString() as string)
dragSourceElement = view.dom.parentElement?.contains(event.target as Element)
? view.dom.parentElement
: null
}

const handleDragEnter = (event: DragEvent) => {
event.preventDefault()
}

const handleDragOver = (event: DragEvent) => {
event.preventDefault()
let caretData

if (document.caretRangeFromPoint) {
caretData = document.caretRangeFromPoint(event.clientX, event.clientY)
}
caretOffset = caretData?.startOffset
}

window.addEventListener('dragstart', handleDragstart)

window.addEventListener('dragenter', handleDragEnter)

window.addEventListener('dragover', handleDragOver)

return {
destroy() {
window.removeEventListener('dragstart', handleDragstart)
window.removeEventListener('dragenter', handleDragEnter)
window.removeEventListener('dragover', handleDragOver)
},
}
},

props: {
handleDOMEvents: {
drop: (view, event: any) => {
drop: view => {
isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement
event.preventDefault()

const data = event.dataTransfer?.getData('text/plain')

if (event.target.parentElement.className === 'ProseMirror') {
draggedElement.textContent = draggedElement.textContent.replace(data, '')
event.target.textContent = event.target.textContent.slice(0, caretOffset) + data + event.target.textContent.slice(caretOffset)
}
return false
},

Expand Down

0 comments on commit 403b99c

Please sign in to comment.