fix: early return file dnd if not dragging files (#1000)

This commit is contained in:
Aman Harwara
2022-04-26 15:21:47 +05:30
committed by GitHub
parent 50d047a903
commit 63fcd3d217

View File

@@ -38,6 +38,10 @@ const removeDragOverlay = () => {
document.getElementById('drag-overlay')?.remove() document.getElementById('drag-overlay')?.remove()
} }
const isHandlingFileDrag = (event: DragEvent) =>
event.dataTransfer?.items &&
Array.from(event.dataTransfer.items).some((item) => item.kind === 'file')
export const AttachedFilesButton: FunctionComponent<Props> = observer( export const AttachedFilesButton: FunctionComponent<Props> = observer(
({ application, appState, onClickPreprocessing }) => { ({ application, appState, onClickPreprocessing }) => {
const premiumModal = usePremiumModal() const premiumModal = usePremiumModal()
@@ -223,10 +227,7 @@ export const AttachedFilesButton: FunctionComponent<Props> = observer(
const dragCounter = useRef(0) const dragCounter = useRef(0)
const handleDrag = (event: DragEvent) => { const handleDrag = (event: DragEvent) => {
if ( if (isHandlingFileDrag(event)) {
event.dataTransfer?.items &&
Array.from(event.dataTransfer.items).some((item) => item.kind === 'file')
) {
event.preventDefault() event.preventDefault()
event.stopPropagation() event.stopPropagation()
} }
@@ -234,6 +235,10 @@ export const AttachedFilesButton: FunctionComponent<Props> = observer(
const handleDragIn = useCallback( const handleDragIn = useCallback(
(event: DragEvent) => { (event: DragEvent) => {
if (!isHandlingFileDrag(event)) {
return
}
event.preventDefault() event.preventDefault()
event.stopPropagation() event.stopPropagation()
@@ -251,6 +256,10 @@ export const AttachedFilesButton: FunctionComponent<Props> = observer(
) )
const handleDragOut = (event: DragEvent) => { const handleDragOut = (event: DragEvent) => {
if (!isHandlingFileDrag(event)) {
return
}
event.preventDefault() event.preventDefault()
event.stopPropagation() event.stopPropagation()
@@ -267,6 +276,10 @@ export const AttachedFilesButton: FunctionComponent<Props> = observer(
const handleDrop = useCallback( const handleDrop = useCallback(
(event: DragEvent) => { (event: DragEvent) => {
if (!isHandlingFileDrag(event)) {
return
}
event.preventDefault() event.preventDefault()
event.stopPropagation() event.stopPropagation()