UNPKG

rooks

Version:

Essential React custom hooks ⚓ to super charge your components!

23 lines (22 loc) 788 B
import { useEffect, useRef } from "react"; import { useIsomorphicEffect } from "./useIsomorphicEffect"; /** * useFreshRef * * @param value The value which needs to be fresh at all times. Probably * best used with functions * @param preferLayoutEffect Should the value be updated using a layout effect * or a passive effect. Defaults to false. * @returns A ref containing the fresh value * @see https://react-hooks.org/docs/useFreshRef */ function useFreshRef(value, preferLayoutEffect) { if (preferLayoutEffect === void 0) { preferLayoutEffect = false; } var useEffectToUse = preferLayoutEffect ? useIsomorphicEffect : useEffect; var ref = useRef(value); useEffectToUse(function () { ref.current = value; }); return ref; } export { useFreshRef };