@chakra-ui/react
Version:
Responsive and accessible React UI components built with React and Emotion
25 lines (22 loc) • 579 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 };
;