@wordpress/block-editor
Version:
46 lines (39 loc) • 988 B
JavaScript
/**
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
import { ToolbarButton, ToolbarGroup } from '@wordpress/components';
import { useReducer } from '@wordpress/element';
import { lock } from '@wordpress/icons';
/**
* Internal dependencies
*/
import BlockLockModal from './modal';
import useBlockLock from './use-block-lock';
export default function BlockLockToolbar( { clientId } ) {
const { canEdit, canMove, canRemove, canLock } = useBlockLock( clientId );
const [ isModalOpen, toggleModal ] = useReducer(
( isActive ) => ! isActive,
false
);
if ( ! canLock ) {
return null;
}
if ( canEdit && canMove && canRemove ) {
return null;
}
return (
<>
<ToolbarGroup className="block-editor-block-lock-toolbar">
<ToolbarButton
icon={ lock }
label={ __( 'Unlock' ) }
onClick={ toggleModal }
/>
</ToolbarGroup>
{ isModalOpen && (
<BlockLockModal clientId={ clientId } onClose={ toggleModal } />
) }
</>
);
}