import { applyFilters } from '@wordpress/hooks';
import { createContext } from '@wordpress/element';
import { useInnerBlocksCount } from '../../hooks';
import TemplateSelector from './index';
const defaultContext = {
label: 'Label',
instructions: 'Instructions...',
templates: [],
};
const TemplateContext = createContext( defaultContext );
export const withTemplateContext = ( WrappedComponent ) => ( ( props ) => {
const { clientId } = props;
const innerBlocksCount = useInnerBlocksCount( clientId );
const templateContext = applyFilters(
'generateblocks.editor.templateContext',
defaultContext,
props
);
return (
<TemplateContext.Provider value={ templateContext }>
{ 0 < templateContext.templates.length && 0 === innerBlocksCount
? <WrappedComponent { ...props } ContentRenderer={ TemplateSelector } />
: <WrappedComponent { ...props } />
}
</TemplateContext.Provider>
);
} );
export default TemplateContext;