/** * copy from https://github.com/react-component/util/blob/9d5cb8946da29e690bead78b2c251da6f7cbd0eb/src/hooks/useLayoutEffect.ts */ import * as React from 'functional-mini/compat'; /** * Wrap `React.useLayoutEffect` which will not throw warning message in test env */ var useInternalLayoutEffect = React.useEffect; var useLayoutEffect = function (callback, deps) { var firstMountRef = React.useRef(true); useInternalLayoutEffect(function () { return callback(firstMountRef.current); }, deps); // We tell react that first mount has passed useInternalLayoutEffect(function () { firstMountRef.current = false; return function () { firstMountRef.current = true; }; }, []); }; export var useComponentUpdateEffect = function (callback, deps) { useLayoutEffect(function (firstMount) { if (!firstMount) { return callback(); } }, deps); }; export default useLayoutEffect;