Skip to content

Instantly share code, notes, and snippets.

@chris-feist
Last active July 1, 2019 15:02
Show Gist options
  • Save chris-feist/93382c8eb3cc44847bfb715195d48c34 to your computer and use it in GitHub Desktop.
Save chris-feist/93382c8eb3cc44847bfb715195d48c34 to your computer and use it in GitHub Desktop.
React Hooks: useWindowDropZone.js drop dragover
import { useEffect, useCallback } from 'react';
export default (args) => {
const { onDrop } = args;
const onDropCallback = useCallback((event) => {
event.preventDefault();
onDrop(event);
}, [onDrop]);
const onDragoverCallback = useCallback((event) => {
event.preventDefault();
}, []);
useEffect(() => {
window.addEventListener('drop', onDropCallback);
window.addEventListener('dragover', onDragoverCallback);
return () => {
window.removeEventListener('drop', onDropCallback);
window.removeEventListener('dragover', onDragoverCallback);
};
}, [onDropCallback, onDragoverCallback]);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment