@wordpress/components
Version:
UI components for WordPress.
38 lines (35 loc) • 1.06 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Fill;
var _element = require("@wordpress/element");
var _context = _interopRequireDefault(require("./context"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function Fill({
name,
children
}) {
const registry = (0, _element.useContext)(_context.default);
const instanceRef = (0, _element.useRef)({});
const childrenRef = (0, _element.useRef)(children);
(0, _element.useLayoutEffect)(() => {
childrenRef.current = children;
}, [children]);
(0, _element.useLayoutEffect)(() => {
const instance = instanceRef.current;
registry.registerFill(name, instance, childrenRef.current);
return () => registry.unregisterFill(name, instance);
}, [registry, name]);
(0, _element.useLayoutEffect)(() => {
registry.updateFill(name, instanceRef.current, childrenRef.current);
});
return null;
}
//# sourceMappingURL=fill.js.map