Skip to content

Commit a0a618e

Browse files
authored
fix: drag and drop on mobile devices (#86)
1 parent baf60bf commit a0a618e

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ class NestedSort {
208208
onDragStart(e: DragEvent): void {
209209
this.draggedNode = e.target as HTMLElement
210210
this.draggedNode.classList.add(this.classNames.dragged)
211+
e.dataTransfer?.setData('text', '') // Hack for mobile devices
211212
}
212213

213214
onDragOver(e: DragEvent): void {

test/main.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,20 @@ describe('NestedSort', () => {
215215

216216
expect(ns.draggedNode).toEqual(item)
217217
})
218+
219+
it('runs the event dataTransfer.setDate method', () => {
220+
initDataDrivenList()
221+
const item = document.querySelector('[data-id="1"]')
222+
const setData = jest.fn()
223+
item.dispatchEvent(
224+
createEvent('dragstart', {
225+
dataTransfer: { setData }
226+
})
227+
)
228+
229+
expect(setData).toHaveBeenCalledTimes(1)
230+
expect(setData).toHaveBeenCalledWith('text', '')
231+
})
218232
})
219233

220234
describe('dragenter event', () => {

0 commit comments

Comments
 (0)