UNPKG

@wordpress/components

Version:
33 lines (30 loc) 999 B
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useSlot; var _element = require("@wordpress/element"); var _compose = require("@wordpress/compose"); var _slotFillContext = _interopRequireDefault(require("./slot-fill-context")); /** * WordPress dependencies */ /** * Internal dependencies */ function useSlot(name) { const registry = (0, _element.useContext)(_slotFillContext.default); const slot = (0, _compose.useObservableValue)(registry.slots, name); const api = (0, _element.useMemo)(() => ({ updateSlot: fillProps => registry.updateSlot(name, fillProps), unregisterSlot: ref => registry.unregisterSlot(name, ref), registerFill: ref => registry.registerFill(name, ref), unregisterFill: ref => registry.unregisterFill(name, ref) }), [name, registry]); return { ...slot, ...api }; } //# sourceMappingURL=use-slot.js.map