@gechiui/block-editor
Version:
32 lines (24 loc) • 884 B
JavaScript
/**
* GeChiUI dependencies
*/
import { useDispatch } from '@gechiui/data';
import { useEffect } from '@gechiui/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';
/** @typedef {import('@gechiui/data').GCDataRegistry} GCDataRegistry */
function BlockEditorProvider( props ) {
const { children, settings } = props;
const { updateSettings } = useDispatch( blockEditorStore );
useEffect( () => {
updateSettings( settings );
}, [ settings ] );
// Syncs the entity provider with changes in the block-editor store.
useBlockSync( props );
return <BlockRefsProvider>{ children }</BlockRefsProvider>;
}
export default withRegistryProvider( BlockEditorProvider );