@wordpress/block-editor
Version:
44 lines (40 loc) • 1.44 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@wordpress/element";
/**
* WordPress dependencies
*/
import { useDispatch } from '@wordpress/data';
import { useEffect } from '@wordpress/element';
/**
* Internal dependencies
*/
import withRegistryProvider from './with-registry-provider';
import useBlockSync from './use-block-sync';
import { store as blockEditorStore } from '../../store';
import { BlockRefsProvider } from './block-refs-provider';
import { unlock } from '../../lock-unlock';
/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */
export const ExperimentalBlockEditorProvider = withRegistryProvider(props => {
const {
children,
settings,
stripExperimentalSettings = false
} = props;
const {
__experimentalUpdateSettings
} = unlock(useDispatch(blockEditorStore));
useEffect(() => {
__experimentalUpdateSettings({ ...settings,
__internalIsInitialized: true
}, stripExperimentalSettings);
}, [settings]); // Syncs the entity provider with changes in the block-editor store.
useBlockSync(props);
return createElement(BlockRefsProvider, null, children);
});
export const BlockEditorProvider = props => {
return createElement(ExperimentalBlockEditorProvider, _extends({}, props, {
stripExperimentalSettings: true
}), props.children);
};
export default BlockEditorProvider;
//# sourceMappingURL=index.js.map