UNPKG

@gechiui/block-editor

Version:
64 lines (55 loc) 1.38 kB
/** * External dependencies */ import { last } from 'lodash'; /** * GeChiUI dependencies */ import { withSelect } from '@gechiui/data'; import { getDefaultBlockName } from '@gechiui/blocks'; /** * Internal dependencies */ import DefaultBlockAppender from '../default-block-appender'; import styles from './style.scss'; import { store as blockEditorStore } from '../../store'; function BlockListAppender( { blockClientIds, rootClientId, canInsertDefaultBlock, isLocked, renderAppender: CustomAppender, showSeparator, } ) { if ( isLocked ) { return null; } if ( CustomAppender ) { return <CustomAppender showSeparator={ showSeparator } />; } if ( canInsertDefaultBlock ) { return ( <DefaultBlockAppender rootClientId={ rootClientId } lastBlockClientId={ last( blockClientIds ) } containerStyle={ styles.blockListAppender } placeholder={ blockClientIds.length > 0 ? '' : null } showSeparator={ showSeparator } /> ); } return null; } export default withSelect( ( select, { rootClientId } ) => { const { getBlockOrder, canInsertBlockType, getTemplateLock } = select( blockEditorStore ); return { isLocked: !! getTemplateLock( rootClientId ), blockClientIds: getBlockOrder( rootClientId ), canInsertDefaultBlock: canInsertBlockType( getDefaultBlockName(), rootClientId ), }; } )( BlockListAppender );