UNPKG

@chakra-ui/react

Version:

Responsive and accessible React UI components built with React and Emotion

25 lines (22 loc) 579 B
"use strict"; "use client"; import { useRef, useEffect } from 'react'; const useUpdateEffect = (effect, deps) => { const renderCycleRef = useRef(false); const effectCycleRef = useRef(false); useEffect(() => { const isMounted = renderCycleRef.current; const shouldRun = isMounted && effectCycleRef.current; if (shouldRun) { return effect(); } effectCycleRef.current = true; }, deps); useEffect(() => { renderCycleRef.current = true; return () => { renderCycleRef.current = false; }; }, []); }; export { useUpdateEffect };