1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 04:46:40 +07:00

file uploading template

This commit is contained in:
muerwre 2019-08-06 21:23:31 +07:00
parent cfe4731ded
commit 8dc43c77b7
7 changed files with 57 additions and 10 deletions

View file

@ -5,14 +5,32 @@ import * as styles from './styles.scss';
interface IProps {
data: INode,
setData: (val: INode) => void;
};
onUpload: (val: File[]) => void;
}
const ImageEditor: FC<IProps> = ({
data,
setData,
onUpload,
}) => {
const eventPreventer = useCallback(event => event.preventDefault(), []);
const onDrop = useCallback(event => {
event.preventDefault();
if (!event.dataTransfer || !event.dataTransfer.files || !event.dataTransfer.files.length) return;
onUpload(event.dataTransfer.files);
}, [onUpload]);
const onInputChange = useCallback(event => {
event.preventDefault();
if (!event.target.files || !event.target.files.length) return;
onUpload(event.target.files);
}, [onUpload]);
useEffect(() => {
window.addEventListener("dragover", eventPreventer,false);
window.addEventListener("drop",eventPreventer,false);
@ -26,9 +44,10 @@ const ImageEditor: FC<IProps> = ({
return (
<form
className={styles.uploads}
onDrop={e => { console.log(e.dataTransfer.files);}}
onDrop={onDrop}
>
<div>{data.type}</div>
<input type="file" onChange={onInputChange} />
</form>
);
};