highlight upload box when dragging

This commit is contained in:
proddy
2024-10-02 10:30:03 +02:00
parent 4dee945632
commit 8ccc708532

View File

@@ -12,6 +12,7 @@ import './dragNdrop.css';
const DragNdrop = ({ onFileSelected }) => { const DragNdrop = ({ onFileSelected }) => {
const [file, setFile] = useState<File>(); const [file, setFile] = useState<File>();
const [dragged, setDragged] = useState(false);
const inputRef = useRef<HTMLInputElement | null>(null); const inputRef = useRef<HTMLInputElement | null>(null);
const { LL } = useI18nContext(); const { LL } = useI18nContext();
@@ -45,6 +46,7 @@ const DragNdrop = ({ onFileSelected }) => {
const handleRemoveFile = (event) => { const handleRemoveFile = (event) => {
event.stopPropagation(); event.stopPropagation();
setFile(undefined); setFile(undefined);
setDragged(false);
}; };
const handleUploadClick = (event) => { const handleUploadClick = (event) => {
@@ -56,11 +58,17 @@ const DragNdrop = ({ onFileSelected }) => {
inputRef.current?.click(); inputRef.current?.click();
}; };
const handleDragOver = (event) => {
event.preventDefault(); // prevent file from being opened
setDragged(true);
};
return ( return (
<div <div
className={`document-uploader ${file ? 'upload-box active' : 'upload-box'}`} className={`document-uploader ${file || dragged ? 'active' : ''}`}
onDrop={handleDrop} onDrop={handleDrop}
onDragOver={(event) => event.preventDefault()} onDragOver={handleDragOver}
onDragLeave={() => setDragged(false)}
onClick={handleBrowseClick} onClick={handleBrowseClick}
> >
<div className="upload-info"> <div className="upload-info">