UNPKG

@modern-kit/react

Version:
21 lines (18 loc) 637 B
import { useRef, useEffect } from 'react'; import { isFunction } from '@modern-kit/utils'; function useConditionalEffect(effectCallback, deps, condition) { const prevDeps = useRef(void 0); const signal = useRef(0); const shouldRunEffect = isFunction(condition) ? condition(prevDeps.current, deps) : condition; useEffect( () => { if (!shouldRunEffect) return; return effectCallback(); }, // eslint-disable-next-line react-hooks/exhaustive-deps [shouldRunEffect ? ++signal.current : signal.current] ); prevDeps.current = deps; } export { useConditionalEffect }; //# sourceMappingURL=index.mjs.map