@chakra-ui/hooks
Version:
React hooks for Chakra components
24 lines (21 loc) • 565 B
JavaScript
'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 };