UNPKG

@wordpress/upload-media

Version:
55 lines (52 loc) 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _data = require("@wordpress/data"); var _compose = require("@wordpress/compose"); var _store = require("../../store"); var _constants = require("../../store/constants"); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ /** * Internal dependencies */ function getSubRegistry(subRegistries, registry, useSubRegistry) { if (!useSubRegistry) { return registry; } let subRegistry = subRegistries.get(registry); if (!subRegistry) { subRegistry = (0, _data.createRegistry)({}, registry); subRegistry.registerStore(_constants.STORE_NAME, _store.storeConfig); subRegistries.set(registry, subRegistry); } return subRegistry; } const withRegistryProvider = (0, _compose.createHigherOrderComponent)(WrappedComponent => ({ useSubRegistry = true, ...props }) => { const registry = (0, _data.useRegistry)(); const [subRegistries] = (0, _element.useState)(() => new WeakMap()); const subRegistry = getSubRegistry(subRegistries, registry, useSubRegistry); if (subRegistry === registry) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, { registry: registry, ...props }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_data.RegistryProvider, { value: subRegistry, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, { registry: subRegistry, ...props }) }); }, 'withRegistryProvider'); var _default = exports.default = withRegistryProvider; //# sourceMappingURL=with-registry-provider.js.map