123456789101112131415161718192021222324252627282930313233343536 |
- "use strict";
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.useLayoutUpdateEffect = exports.default = void 0;
- var React = _interopRequireWildcard(require("react"));
- var _canUseDom = _interopRequireDefault(require("../Dom/canUseDom"));
- /**
- * Wrap `React.useLayoutEffect` which will not throw warning message in test env
- */
- var useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && (0, _canUseDom.default)() ? React.useLayoutEffect : React.useEffect;
- var useLayoutEffect = function useLayoutEffect(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;
- };
- }, []);
- };
- var useLayoutUpdateEffect = exports.useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {
- useLayoutEffect(function (firstMount) {
- if (!firstMount) {
- return callback();
- }
- }, deps);
- };
- var _default = exports.default = useLayoutEffect;
|