@gechiui/block-editor
Version:
49 lines (43 loc) • 1.42 kB
JavaScript
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