@dossierhq/design
Version:
The design system for Dossier.
21 lines • 724 B
JavaScript
'use client';
import { useEffect, useRef } from 'react';
export function useEventListener(target, type, listener, options) {
const listenerRef = useRef(null);
listenerRef.current = listener;
useEffect(() => {
const actualListener = (event) => {
if (typeof listenerRef.current === 'object') {
listenerRef.current?.handleEvent(event);
}
else {
listenerRef.current?.(event);
}
};
target.addEventListener(type, actualListener, options);
return () => {
target.removeEventListener(type, actualListener);
};
}, [target, type, options]);
}
//# sourceMappingURL=useEventListener.js.map