UNPKG

pixi-fusion

Version:

This module offers a set of common components needed for playing games.

28 lines (23 loc) 650 B
import { useEffect } from "react"; export const useGlobalEventHandler = <K extends keyof DocumentEventMap>({ isEnabled = true, event, callback }: { isEnabled?: boolean; event: K; callback: (e: DocumentEventMap[K]) => unknown; }) => { useEffect(() => { if (!isEnabled) { return () => {}; } const internalCallback = (e: DocumentEventMap[K]) => { callback(e); }; document.addEventListener(event, internalCallback); return () => { document.removeEventListener(event, internalCallback); }; }, [isEnabled, event, callback]); };