Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/wojtekmaj/react-hooks. A collection of React Hooks.
hooks react react-hooks
Something went wrong. Try again.
1.4 kB · 47 lines
TypeScript
at vitest-5
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import { useEffect } from 'react';
/** * Adds event listener to a given element. * * @param {Element | Window | Document | FontFaceSet | null} [element] Element to attach the listener to * @param {string} type Event type * @param {EventListenerOrEventListenerObject} listener Event listener * @returns {void} */export default function useEventListener( element: Element | null, type: string, listener: EventListenerOrEventListenerObject,): void;export default function useEventListener<U extends keyof WindowEventMap>( element: Window | null, type: U, listener: (event: WindowEventMap[U]) => void,): void;export default function useEventListener<U extends keyof DocumentEventMap>( element: Document | null, type: U, listener: (event: DocumentEventMap[U]) => void,): void;export default function useEventListener<U extends keyof FontFaceSetEventMap>( element: FontFaceSet | null, type: U, listener: (event: FontFaceSetEventMap[U]) => void,): void;export default function useEventListener( element: Element | Window | Document | FontFaceSet | null, type: string, listener: EventListenerOrEventListenerObject | ((event: Event) => void),): void { useEffect(() => { if (!element) { return undefined; }
element.addEventListener(type, listener);
return () => { element.removeEventListener(type, listener); }; }, [element, type, listener]);}