Skip to content

Instantly share code, notes, and snippets.

@adam-zethraeus
Created July 15, 2023 03:14
Show Gist options
  • Save adam-zethraeus/e00369fce3318dfd8500013a5c0b599b to your computer and use it in GitHub Desktop.
Save adam-zethraeus/e00369fce3318dfd8500013a5c0b599b to your computer and use it in GitHub Desktop.
useEventListener hook
import { useCallback, useEffect } from "react";
const useEventListener = (targetElement, eventType, callback, deps = []) => {
const callbackHandle = useCallback(callback, deps);
useEffect(() => {
targetElement.addEventListener(eventType, callbackHandle);
return () => {
targetElement.removeEventListener(eventType, callbackHandle);
};
}, [callbackHandle, ...deps]);
};
export { useEventListener };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment