UNPKG

@wordpress/block-editor

Version:
45 lines (38 loc) 959 B
/** * WordPress dependencies */ import { __ } from '@wordpress/i18n'; import { useReducer } from '@wordpress/element'; import { MenuItem } from '@wordpress/components'; import { lockOutline, unlock } from '@wordpress/icons'; /** * Internal dependencies */ import useBlockLock from './use-block-lock'; import BlockLockModal from './modal'; export default function BlockLockMenuItem( { clientId } ) { const { canLock, isLocked } = useBlockLock( clientId ); const [ isModalOpen, toggleModal ] = useReducer( ( isActive ) => ! isActive, false ); if ( ! canLock ) { return null; } const label = isLocked ? __( 'Unlock' ) : __( 'Lock' ); return ( <> <MenuItem icon={ isLocked ? unlock : lockOutline } onClick={ toggleModal } aria-expanded={ isModalOpen } aria-haspopup="dialog" > { label } </MenuItem> { isModalOpen && ( <BlockLockModal clientId={ clientId } onClose={ toggleModal } /> ) } </> ); }