Skip to content
Prev Previous commit
Next Next commit
Add esc and backspace
  • Loading branch information
ellatrix committed May 29, 2017
commit 336eadebffc4e857e42d605d8400aee9b1a8d612
33 changes: 23 additions & 10 deletions editor/modes/visual-editor/block.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import Toolbar from 'components/toolbar';
import BlockMover from '../../block-mover';
import BlockSwitcher from '../../block-switcher';
import {
deselectBlock,
focusBlock,
mergeBlocks,
insertBlock,
Expand Down Expand Up @@ -102,20 +101,34 @@ class VisualEditorBlock extends wp.element.Component {
}
}

removeOrDeselect( event ) {
const { keyCode, target } = event;
removeOrDeselect( { keyCode, target } ) {
const {
uid,
selectedBlocks,
previousBlock,
onRemove,
onFocus,
onDeselect,
} = this.props;

// Remove block on backspace
if ( 8 /* Backspace */ === keyCode && target === this.node ) {
this.props.onRemove( [ this.props.uid ] );
if ( this.props.previousBlock ) {
this.props.onFocus( this.props.previousBlock.uid, { offset: -1 } );
if ( 8 /* Backspace */ === keyCode ) {
if ( target === this.node ) {
onRemove( [ uid ] );

if ( previousBlock ) {
onFocus( previousBlock.uid, { offset: -1 } );
}
}

if ( selectedBlocks.length ) {
onRemove( selectedBlocks );
}
}

// Deselect on escape
if ( 27 /* Escape */ === event.keyCode ) {
this.props.onDeselect();
if ( 27 /* Escape */ === keyCode ) {
onDeselect();
}
}

Expand Down Expand Up @@ -309,7 +322,7 @@ export default connect(
} );
},
onDeselect() {
dispatch( deselectBlock( ownProps.uid ) );
dispatch( { type: 'CLEAR_SELECTED_BLOCK' } );
},
onStartTyping() {
dispatch( {
Expand Down
4 changes: 4 additions & 0 deletions editor/selectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,10 @@ export function isBlockHovered( state, uid ) {
}

export function getBlockFocus( state, uid ) {
if ( isFirstSelectedBlock( state, uid ) ) {
return {};
}

if ( ! isBlockSelected( state, uid ) ) {
return null;
}
Expand Down
6 changes: 6 additions & 0 deletions editor/test/selectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,9 @@ describe( 'selectors', () => {
uid: 123,
focus: { editable: 'cite' },
},
editor: {
blockOrder: [ 123 ],
},
multiSelectedBlocks: {},
};

Expand All @@ -682,6 +685,9 @@ describe( 'selectors', () => {
uid: 123,
focus: { editable: 'cite' },
},
editor: {
blockOrder: [ 123 ],
},
multiSelectedBlocks: {},
};

Expand Down