UNPKG

@gechiui/block-editor

Version:
49 lines (43 loc) 1.42 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { createElement } from "@gechiui/element"; /** * GeChiUI dependencies */ import { useState, useEffect } from '@gechiui/element'; import { withRegistry, createRegistry, RegistryProvider } from '@gechiui/data'; import { createHigherOrderComponent } from '@gechiui/compose'; /** * Internal dependencies */ import { storeConfig } from '../../store'; import { STORE_NAME as blockEditorStoreName } from '../../store/constants'; const withRegistryProvider = createHigherOrderComponent(WrappedComponent => { return withRegistry(_ref => { let { useSubRegistry = true, registry, ...props } = _ref; if (!useSubRegistry) { return createElement(WrappedComponent, _extends({ registry: registry }, props)); } const [subRegistry, setSubRegistry] = useState(null); useEffect(() => { const newRegistry = createRegistry({}, registry); newRegistry.registerStore(blockEditorStoreName, storeConfig); setSubRegistry(newRegistry); }, [registry]); if (!subRegistry) { return null; } return createElement(RegistryProvider, { value: subRegistry }, createElement(WrappedComponent, _extends({ registry: subRegistry }, props))); }); }, 'withRegistryProvider'); export default withRegistryProvider; //# sourceMappingURL=with-registry-provider.js.map