From c57f577fe05f5762b6667191a81d2e728ca4e2dd Mon Sep 17 00:00:00 2001 From: systimotic Date: Fri, 27 Jan 2017 16:42:05 +0100 Subject: [PATCH] Add editor focus and unfocus hotkeys --- .../routes/challenges/components/classic/Editor.jsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/common/app/routes/challenges/components/classic/Editor.jsx b/common/app/routes/challenges/components/classic/Editor.jsx index f2d67f2abe7..ec4841077d2 100644 --- a/common/app/routes/challenges/components/classic/Editor.jsx +++ b/common/app/routes/challenges/components/classic/Editor.jsx @@ -7,6 +7,8 @@ import Codemirror from 'react-codemirror'; import NoSSR from 'react-no-ssr'; import PureComponent from 'react-pure-render/component'; +import MouseTrap from 'mousetrap'; + import CodeMirrorSkeleton from '../CodeMirrorSkeleton.jsx'; const mapStateToProps = createSelector( @@ -58,6 +60,9 @@ export class Editor extends PureComponent { ...options, mode, extraKeys: { + Esc() { + document.activeElement.blur(); + }, Tab(cm) { if (cm.somethingSelected()) { return cm.indentSelection('add'); @@ -99,6 +104,10 @@ export class Editor extends PureComponent { updateFile, err => { throw err; } ); + + MouseTrap.bind('e', () => { + this.refs.editor.focus(); + }, 'keyup'); } componentWillUnmount() { @@ -106,6 +115,7 @@ export class Editor extends PureComponent { this._subscription.dispose(); this._subscription = null; } + MouseTrap.unbind('e', 'keyup'); } handleChange(value) { @@ -129,6 +139,7 @@ export class Editor extends PureComponent {