From 54cc53806e86f32dfaa35c8588ee511c128f8b64 Mon Sep 17 00:00:00 2001 From: Mckervin Ceme Date: Fri, 9 May 2025 15:16:45 -0400 Subject: [PATCH] Create useFunction --- src/useFunction | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/useFunction 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 };