import { useCallback, useState } from 'react' export const useDraggableUploader = (setImageFn: (file: File) => void) => { const [isDragActive, setIsDragActive] = useState(false) const handleDragEnter = useCallback((e: React.DragEvent) => { e.preventDefault() e.stopPropagation() setIsDragActive(true) }, []) const handleDragOver = useCallback((e: React.DragEvent) => { e.preventDefault() e.stopPropagation() }, []) const handleDragLeave = useCallback((e: React.DragEvent) => { e.preventDefault() e.stopPropagation() setIsDragActive(false) }, []) const handleDrop = useCallback((e: React.DragEvent) => { e.preventDefault() e.stopPropagation() setIsDragActive(false) const file = e.dataTransfer.files[0] if (!file) return setImageFn(file) }, [setImageFn]) return { handleDragEnter, handleDragOver, handleDragLeave, handleDrop, isDragActive, } }