UNPKG

@wordpress/block-editor

Version:
60 lines (53 loc) 1.27 kB
/** * WordPress dependencies */ import { __ } from '@wordpress/i18n'; import { DOWN } from '@wordpress/keycodes'; import { ToolbarButton, Dropdown, __experimentalAlignmentMatrixControl as AlignmentMatrixControl, } from '@wordpress/components'; const noop = () => {}; function BlockAlignmentMatrixControl( props ) { const { label = __( 'Change matrix alignment' ), onChange = noop, value = 'center', isDisabled, } = props; const icon = <AlignmentMatrixControl.Icon value={ value } />; return ( <Dropdown popoverProps={ { variant: 'toolbar', placement: 'bottom-start' } } renderToggle={ ( { onToggle, isOpen } ) => { const openOnArrowDown = ( event ) => { if ( ! isOpen && event.keyCode === DOWN ) { event.preventDefault(); onToggle(); } }; return ( <ToolbarButton onClick={ onToggle } aria-haspopup="true" aria-expanded={ isOpen } onKeyDown={ openOnArrowDown } label={ label } icon={ icon } showTooltip disabled={ isDisabled } /> ); } } renderContent={ () => ( <AlignmentMatrixControl hasFocusBorder={ false } onChange={ onChange } value={ value } /> ) } /> ); } export default BlockAlignmentMatrixControl;