@wordpress/components
Version:
UI components for WordPress.
37 lines (35 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
/**
* WordPress dependencies
*/
/**
* A `React.useEffect` that will not run on the first render.
* Source:
* https://github.com/ariakit/ariakit/blob/main/packages/ariakit-react-core/src/utils/hooks.ts
*
* @param {import('react').EffectCallback} effect
* @param {import('react').DependencyList} deps
*/
function useUpdateEffect(effect, deps) {
const mountedRef = (0, _element.useRef)(false);
(0, _element.useEffect)(() => {
if (mountedRef.current) {
return effect();
}
mountedRef.current = true;
return undefined;
// 1. This hook needs to pass a dep list that isn't an array literal
// 2. `effect` is missing from the array, and will need to be added carefully to avoid additional warnings
// see https://github.com/WordPress/gutenberg/pull/41166
}, deps);
(0, _element.useEffect)(() => () => {
mountedRef.current = false;
}, []);
}
var _default = exports.default = useUpdateEffect;
//# sourceMappingURL=use-update-effect.js.map