diff --git a/shared/hooks/useRunOnce.ts b/shared/hooks/useRunOnce.ts new file mode 100644 index 0000000..ba548dc --- /dev/null +++ b/shared/hooks/useRunOnce.ts @@ -0,0 +1,14 @@ +import { useEffect, useRef } from "react"; + +const useRunOnce = (callback: () => void | Promise) => { + const calledRef = useRef(false); + + useEffect(() => { + if (calledRef.current) return; + calledRef.current = true; + + void callback(); + }, [callback]); +}; + +export default useRunOnce;