diff options
author | Mary <pineapplecreamcheese@skiff.com> | 2024-01-21 04:24:58 +0700 |
---|---|---|
committer | Mary <pineapplecreamcheese@skiff.com> | 2024-01-21 08:43:11 +0700 |
commit | 88f2a73ad6eb0f3f4b9b5a10aaf3d3be090bc5e5 (patch) | |
tree | 0569ebbf5ef0cb6c300b0ef565679d29d7c10765 /src/view/com/composer/text-input/TextInput.web.tsx | |
parent | 854718c5551139109a0eef60126b9a39117f833f (diff) | |
download | voidsky-88f2a73ad6eb0f3f4b9b5a10aaf3d3be090bc5e5.tar.zst |
fix: always call preventDefault
Diffstat (limited to 'src/view/com/composer/text-input/TextInput.web.tsx')
-rw-r--r-- | src/view/com/composer/text-input/TextInput.web.tsx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/view/com/composer/text-input/TextInput.web.tsx b/src/view/com/composer/text-input/TextInput.web.tsx index 3ffe3baaf..a2344ad3f 100644 --- a/src/view/com/composer/text-input/TextInput.web.tsx +++ b/src/view/com/composer/text-input/TextInput.web.tsx @@ -111,24 +111,32 @@ export const TextInput = React.forwardRef(function TextInputImpl( event.preventDefault() setIsDropping(false) } - const handleDragOver = (event: DragEvent) => { + const handleDragEnter = (event: DragEvent) => { const transfer = event.dataTransfer + + event.preventDefault() if (transfer && transfer.types.includes('Files')) { setIsDropping(true) } } - const handleDragLeave = (_event: DragEvent) => { + const handleDragLeave = (event: DragEvent) => { + event.preventDefault() setIsDropping(false) } + const handleDragOver = (event: DragEvent) => { + event.preventDefault() + } document.body.addEventListener('drop', handleDrop) - document.body.addEventListener('dragover', handleDragOver) + document.body.addEventListener('dragenter', handleDragEnter) document.body.addEventListener('dragleave', handleDragLeave) + document.body.addEventListener('dragover', handleDragOver) return () => { document.body.removeEventListener('drop', handleDrop) - document.body.removeEventListener('dragover', handleDragOver) + document.body.removeEventListener('dragenter', handleDragEnter) document.body.removeEventListener('dragleave', handleDragLeave) + document.body.removeEventListener('dragover', handleDragOver) } }, [setIsDropping]) |