diff --git a/src/useFunction b/src/useFunction new file mode 100644 index 0000000..d75b848 --- /dev/null +++ b/src/useFunction @@ -0,0 +1,14 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { useCallback, useRef } from "react"; + +const useFunction = any>(fn?: T) => { + const fnRef = useRef(fn); + fnRef.current = fn; + + const callback = useCallback((...args: Parameters) => { + return fnRef.current?.(...args); + }, []); + + return callback as T; +}; +export { useFunction };