import { useMemo } from "react"; export const mergeEvents = ( originalEvent?: (event: E) => void, newEvent?: (event: E) => void, checkForDefaultPrevented?: boolean, ) => { return function handleEvent(event: E) { originalEvent?.(event); if (checkForDefaultPrevented === false || !(event as unknown as Event).defaultPrevented) { return newEvent?.(event); } }; }; export const useMergeEvents = ( originalEventHandler?: (event: E) => void, newEvent?: (event: E) => void, checkForDefaultPrevented?: boolean, ) => { return useMemo(() => { return mergeEvents(originalEventHandler, newEvent, checkForDefaultPrevented); }, [originalEventHandler, newEvent, checkForDefaultPrevented]); };