@wordpress/components
Version:
UI components for WordPress.
46 lines (38 loc) • 970 B
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _context = _interopRequireDefault(require("./context"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* React hook returning the active slot given a name.
*
* @param {string} name Slot name.
* @return {Object} Slot object.
*/
const useSlot = name => {
const {
getSlot,
subscribe
} = (0, _element.useContext)(_context.default);
const [slot, setSlot] = (0, _element.useState)(getSlot(name));
(0, _element.useEffect)(() => {
setSlot(getSlot(name));
const unsubscribe = subscribe(() => {
setSlot(getSlot(name));
});
return unsubscribe;
}, [name]);
return slot;
};
var _default = useSlot;
exports.default = _default;
//# sourceMappingURL=use-slot.js.map