Stop using KeyboardEvent.keyCode as it is deprecated

This commit is contained in:
Michael Telatynski 2019-12-16 17:14:03 +00:00
parent 3ec60b1692
commit d28a892bb0
16 changed files with 95 additions and 111 deletions

View file

@ -1,6 +1,7 @@
/* /*
Copyright 2016 OpenMarket Ltd Copyright 2016 OpenMarket Ltd
Copyright 2017 New Vector Ltd Copyright 2017 New Vector Ltd
Copyright 2019 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -15,52 +16,6 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
/* a selection of key codes, as used in KeyboardEvent.keyCode */
export const KeyCode = {
BACKSPACE: 8,
TAB: 9,
ENTER: 13,
SHIFT: 16,
ESCAPE: 27,
SPACE: 32,
PAGE_UP: 33,
PAGE_DOWN: 34,
END: 35,
HOME: 36,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
DELETE: 46,
KEY_A: 65,
KEY_B: 66,
KEY_C: 67,
KEY_D: 68,
KEY_E: 69,
KEY_F: 70,
KEY_G: 71,
KEY_H: 72,
KEY_I: 73,
KEY_J: 74,
KEY_K: 75,
KEY_L: 76,
KEY_M: 77,
KEY_N: 78,
KEY_O: 79,
KEY_P: 80,
KEY_Q: 81,
KEY_R: 82,
KEY_S: 83,
KEY_T: 84,
KEY_U: 85,
KEY_V: 86,
KEY_W: 87,
KEY_X: 88,
KEY_Y: 89,
KEY_Z: 90,
KEY_BACKTICK: 223, // DO NOT USE THIS: browsers disagree on backtick 192 vs 223
};
export const Key = { export const Key = {
HOME: "Home", HOME: "Home",
END: "End", END: "End",
@ -80,13 +35,35 @@ export const Key = {
SHIFT: "Shift", SHIFT: "Shift",
CONTEXT_MENU: "ContextMenu", CONTEXT_MENU: "ContextMenu",
COMMA: ",",
LESS_THAN: "<", LESS_THAN: "<",
GREATER_THAN: ">", GREATER_THAN: ">",
BACKTICK: "`", BACKTICK: "`",
SPACE: " ", SPACE: " ",
A: "a",
B: "b", B: "b",
C: "c",
D: "d",
E: "e",
F: "f",
G: "g",
H: "h",
I: "i", I: "i",
J: "j",
K: "k", K: "k",
L: "l",
M: "m",
N: "n",
O: "o",
P: "p",
Q: "q",
R: "r",
S: "s",
T: "t",
U: "u",
V: "v",
W: "w",
X: "x",
Y: "y", Y: "y",
Z: "z", Z: "z",
}; };

View file

@ -14,6 +14,8 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import {Key} from "../../../Keyboard";
const React = require("react"); const React = require("react");
import createReactClass from 'create-react-class'; import createReactClass from 'create-react-class';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
@ -83,7 +85,7 @@ module.exports = createReactClass({
}, },
onKeyDown: function(e) { onKeyDown: function(e) {
if (e.keyCode === 27) { // escape if (e.key === Key.ESCAPE) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
this.props.onFinished(false); this.props.onFinished(false);

View file

@ -25,7 +25,7 @@ import Unread from '../../Unread';
import * as RoomNotifs from '../../RoomNotifs'; import * as RoomNotifs from '../../RoomNotifs';
import * as FormattingUtils from '../../utils/FormattingUtils'; import * as FormattingUtils from '../../utils/FormattingUtils';
import IndicatorScrollbar from './IndicatorScrollbar'; import IndicatorScrollbar from './IndicatorScrollbar';
import {Key, KeyCode} from '../../Keyboard'; import {Key} from '../../Keyboard';
import { Group } from 'matrix-js-sdk'; import { Group } from 'matrix-js-sdk';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import RoomTile from "../views/rooms/RoomTile"; import RoomTile from "../views/rooms/RoomTile";
@ -186,7 +186,7 @@ export default class RoomSubList extends React.PureComponent {
dis.dispatch({ dis.dispatch({
action: 'view_room', action: 'view_room',
room_id: roomId, room_id: roomId,
clear_search: (ev && (ev.keyCode === KeyCode.ENTER || ev.keyCode === KeyCode.SPACE)), clear_search: (ev && (ev.key === Key.ENTER || ev.key === Key.SPACE)),
}); });
}; };

View file

@ -44,7 +44,7 @@ import ObjectUtils from '../../ObjectUtils';
import * as Rooms from '../../Rooms'; import * as Rooms from '../../Rooms';
import eventSearch from '../../Searching'; import eventSearch from '../../Searching';
import { KeyCode, isOnlyCtrlOrCmdKeyEvent } from '../../Keyboard'; import {isOnlyCtrlOrCmdKeyEvent, Key} from '../../Keyboard';
import MainSplit from './MainSplit'; import MainSplit from './MainSplit';
import RightPanel from './RightPanel'; import RightPanel from './RightPanel';
@ -561,15 +561,15 @@ module.exports = createReactClass({
let handled = false; let handled = false;
const ctrlCmdOnly = isOnlyCtrlOrCmdKeyEvent(ev); const ctrlCmdOnly = isOnlyCtrlOrCmdKeyEvent(ev);
switch (ev.keyCode) { switch (ev.key) {
case KeyCode.KEY_D: case Key.D:
if (ctrlCmdOnly) { if (ctrlCmdOnly) {
this.onMuteAudioClick(); this.onMuteAudioClick();
handled = true; handled = true;
} }
break; break;
case KeyCode.KEY_E: case Key.E:
if (ctrlCmdOnly) { if (ctrlCmdOnly) {
this.onMuteVideoClick(); this.onMuteVideoClick();
handled = true; handled = true;

View file

@ -17,7 +17,7 @@ limitations under the License.
import React, {createRef} from "react"; import React, {createRef} from "react";
import createReactClass from 'create-react-class'; import createReactClass from 'create-react-class';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { KeyCode } from '../../Keyboard'; import { Key } from '../../Keyboard';
import Timer from '../../utils/Timer'; import Timer from '../../utils/Timer';
import AutoHideScrollbar from "./AutoHideScrollbar"; import AutoHideScrollbar from "./AutoHideScrollbar";
@ -532,26 +532,26 @@ module.exports = createReactClass({
* @param {object} ev the keyboard event * @param {object} ev the keyboard event
*/ */
handleScrollKey: function(ev) { handleScrollKey: function(ev) {
switch (ev.keyCode) { switch (ev.key) {
case KeyCode.PAGE_UP: case Key.PAGE_UP:
if (!ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) { if (!ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {
this.scrollRelative(-1); this.scrollRelative(-1);
} }
break; break;
case KeyCode.PAGE_DOWN: case Key.PAGE_DOWN:
if (!ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) { if (!ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {
this.scrollRelative(1); this.scrollRelative(1);
} }
break; break;
case KeyCode.HOME: case Key.HOME:
if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) { if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {
this.scrollToTop(); this.scrollToTop();
} }
break; break;
case KeyCode.END: case Key.END:
if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) { if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {
this.scrollToBottom(); this.scrollToBottom();
} }

View file

@ -18,7 +18,7 @@ limitations under the License.
import React, {createRef} from 'react'; import React, {createRef} from 'react';
import createReactClass from 'create-react-class'; import createReactClass from 'create-react-class';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { KeyCode } from '../../Keyboard'; import { Key } from '../../Keyboard';
import dis from '../../dispatcher'; import dis from '../../dispatcher';
import { throttle } from 'lodash'; import { throttle } from 'lodash';
import AccessibleButton from '../../components/views/elements/AccessibleButton'; import AccessibleButton from '../../components/views/elements/AccessibleButton';
@ -93,8 +93,8 @@ module.exports = createReactClass({
}, 200, {trailing: true, leading: true}), }, 200, {trailing: true, leading: true}),
_onKeyDown: function(ev) { _onKeyDown: function(ev) {
switch (ev.keyCode) { switch (ev.key) {
case KeyCode.ESCAPE: case Key.ESCAPE:
this._clearSearch("keyboard"); this._clearSearch("keyboard");
break; break;
} }

View file

@ -34,7 +34,7 @@ const dis = require("../../dispatcher");
const ObjectUtils = require('../../ObjectUtils'); const ObjectUtils = require('../../ObjectUtils');
const Modal = require("../../Modal"); const Modal = require("../../Modal");
const UserActivity = require("../../UserActivity"); const UserActivity = require("../../UserActivity");
import { KeyCode } from '../../Keyboard'; import {Key} from '../../Keyboard';
import Timer from '../../utils/Timer'; import Timer from '../../utils/Timer';
import shouldHideEvent from '../../shouldHideEvent'; import shouldHideEvent from '../../shouldHideEvent';
import EditorStateTransfer from '../../utils/EditorStateTransfer'; import EditorStateTransfer from '../../utils/EditorStateTransfer';
@ -942,8 +942,7 @@ const TimelinePanel = createReactClass({
// jump to the live timeline on ctrl-end, rather than the end of the // jump to the live timeline on ctrl-end, rather than the end of the
// timeline window. // timeline window.
if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey && if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey && ev.key === Key.END) {
ev.keyCode == KeyCode.END) {
this.jumpToLiveTimeline(); this.jumpToLiveTimeline();
} else { } else {
this._messagePanel.current.handleScrollKey(ev); this._messagePanel.current.handleScrollKey(ev);

View file

@ -32,6 +32,7 @@ import IdentityAuthClient from '../../../IdentityAuthClient';
import { getDefaultIdentityServerUrl, useDefaultIdentityServer } from '../../../utils/IdentityServerUtils'; import { getDefaultIdentityServerUrl, useDefaultIdentityServer } from '../../../utils/IdentityServerUtils';
import { abbreviateUrl } from '../../../utils/UrlUtils'; import { abbreviateUrl } from '../../../utils/UrlUtils';
import {sleep} from "../../../utils/promise"; import {sleep} from "../../../utils/promise";
import {Key} from "../../../Keyboard";
const TRUNCATE_QUERY_LIST = 40; const TRUNCATE_QUERY_LIST = 40;
const QUERY_USER_DIRECTORY_DEBOUNCE_MS = 200; const QUERY_USER_DIRECTORY_DEBOUNCE_MS = 200;
@ -142,27 +143,27 @@ module.exports = createReactClass({
}, },
onKeyDown: function(e) { onKeyDown: function(e) {
if (e.keyCode === 27) { // escape if (e.key === Key.ESCAPE) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
this.props.onFinished(false); this.props.onFinished(false);
} else if (e.keyCode === 38) { // up arrow } else if (e.key === Key.ARROW_UP) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
if (this.addressSelector) this.addressSelector.moveSelectionUp(); if (this.addressSelector) this.addressSelector.moveSelectionUp();
} else if (e.keyCode === 40) { // down arrow } else if (e.key === Key.ARROW_DOWN) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
if (this.addressSelector) this.addressSelector.moveSelectionDown(); if (this.addressSelector) this.addressSelector.moveSelectionDown();
} else if (this.state.suggestedList.length > 0 && (e.keyCode === 188 || e.keyCode === 13 || e.keyCode === 9)) { // comma or enter or tab } else if (this.state.suggestedList.length > 0 && [Key.COMMA, Key.ENTER, Key.TAB].includes(e.key)) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
if (this.addressSelector) this.addressSelector.chooseSelection(); if (this.addressSelector) this.addressSelector.chooseSelection();
} else if (this._textinput.current.value.length === 0 && this.state.selectedList.length && e.keyCode === 8) { // backspace } else if (this._textinput.current.value.length === 0 && this.state.selectedList.length && e.key === Key.BACKSPACE) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
this.onDismissed(this.state.selectedList.length - 1)(); this.onDismissed(this.state.selectedList.length - 1)();
} else if (e.keyCode === 13) { // enter } else if (e.key === Key.ENTER) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
if (this._textinput.current.value === '') { if (this._textinput.current.value === '') {
@ -171,7 +172,7 @@ module.exports = createReactClass({
} else { } else {
this._addAddressesToList([this._textinput.current.value]); this._addAddressesToList([this._textinput.current.value]);
} }
} else if (e.keyCode === 188 || e.keyCode === 9) { // comma or tab } else if (e.key === Key.COMMA || e.key === Key.TAB) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
this._addAddressesToList([this._textinput.current.value]); this._addAddressesToList([this._textinput.current.value]);

View file

@ -24,7 +24,7 @@ import classNames from 'classnames';
import { MatrixClient } from 'matrix-js-sdk'; import { MatrixClient } from 'matrix-js-sdk';
import { KeyCode } from '../../../Keyboard'; import { Key } from '../../../Keyboard';
import AccessibleButton from '../elements/AccessibleButton'; import AccessibleButton from '../elements/AccessibleButton';
import MatrixClientPeg from '../../../MatrixClientPeg'; import MatrixClientPeg from '../../../MatrixClientPeg';
import { _t } from "../../../languageHandler"; import { _t } from "../../../languageHandler";
@ -102,7 +102,7 @@ export default createReactClass({
if (this.props.onKeyDown) { if (this.props.onKeyDown) {
this.props.onKeyDown(e); this.props.onKeyDown(e);
} }
if (this.props.hasCancel && e.keyCode === KeyCode.ESCAPE) { if (this.props.hasCancel && e.key === Key.ESCAPE) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
this.props.onFinished(false); this.props.onFinished(false);

View file

@ -21,7 +21,7 @@ import PropTypes from 'prop-types';
import sdk from '../../../index'; import sdk from '../../../index';
import MatrixClientPeg from '../../../MatrixClientPeg'; import MatrixClientPeg from '../../../MatrixClientPeg';
import classnames from 'classnames'; import classnames from 'classnames';
import { KeyCode } from '../../../Keyboard'; import { Key } from '../../../Keyboard';
import { _t } from '../../../languageHandler'; import { _t } from '../../../languageHandler';
import { SAFE_LOCALPART_REGEX } from '../../../Registration'; import { SAFE_LOCALPART_REGEX } from '../../../Registration';
@ -101,7 +101,7 @@ export default createReactClass({
}, },
onKeyUp: function(ev) { onKeyUp: function(ev) {
if (ev.keyCode === KeyCode.ENTER) { if (ev.key === Key.ENTER) {
this.onSubmit(); this.onSubmit();
} }
}, },

View file

@ -17,7 +17,7 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { KeyCode } from '../../../Keyboard'; import {Key} from '../../../Keyboard';
/** /**
* AccessibleButton is a generic wrapper for any element that should be treated * AccessibleButton is a generic wrapper for any element that should be treated
@ -40,23 +40,23 @@ export default function AccessibleButton(props) {
// Browsers handle space and enter keypresses differently and we are only adjusting to the // Browsers handle space and enter keypresses differently and we are only adjusting to the
// inconsistencies here // inconsistencies here
restProps.onKeyDown = function(e) { restProps.onKeyDown = function(e) {
if (e.keyCode === KeyCode.ENTER) { if (e.key === Key.ENTER) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
return onClick(e); return onClick(e);
} }
if (e.keyCode === KeyCode.SPACE) { if (e.key === Key.SPACE) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
} }
}; };
restProps.onKeyUp = function(e) { restProps.onKeyUp = function(e) {
if (e.keyCode === KeyCode.SPACE) { if (e.key === Key.SPACE) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
return onClick(e); return onClick(e);
} }
if (e.keyCode === KeyCode.ENTER) { if (e.key === Key.ENTER) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
} }

View file

@ -28,6 +28,7 @@ const AccessibleButton = require('../../../components/views/elements/AccessibleB
const Modal = require('../../../Modal'); const Modal = require('../../../Modal');
const sdk = require('../../../index'); const sdk = require('../../../index');
import { _t } from '../../../languageHandler'; import { _t } from '../../../languageHandler';
import {Key} from "../../../Keyboard";
export default class ImageView extends React.Component { export default class ImageView extends React.Component {
static propTypes = { static propTypes = {
@ -62,7 +63,7 @@ export default class ImageView extends React.Component {
} }
onKeyDown = (ev) => { onKeyDown = (ev) => {
if (ev.keyCode === 27) { // escape if (ev.key === Key.ESCAPE) {
ev.stopPropagation(); ev.stopPropagation();
ev.preventDefault(); ev.preventDefault();
this.props.onFinished(); this.props.onFinished();

View file

@ -20,7 +20,7 @@ import PropTypes from 'prop-types';
import createReactClass from 'create-react-class'; import createReactClass from 'create-react-class';
import { _t } from '../../../languageHandler'; import { _t } from '../../../languageHandler';
import dis from '../../../dispatcher'; import dis from '../../../dispatcher';
import { KeyCode } from '../../../Keyboard'; import {Key} from '../../../Keyboard';
module.exports = createReactClass({ module.exports = createReactClass({
@ -52,8 +52,8 @@ module.exports = createReactClass({
}, },
_onKeyDown: function(ev) { _onKeyDown: function(ev) {
switch (ev.keyCode) { switch (ev.key) {
case KeyCode.ESCAPE: case Key.ESCAPE:
this.props.onCancelClick(); this.props.onCancelClick();
break; break;
} }

View file

@ -33,7 +33,7 @@ import classNames from 'classnames';
import MatrixClientPeg from '../../../MatrixClientPeg'; import MatrixClientPeg from '../../../MatrixClientPeg';
import type {MatrixClient} from 'matrix-js-sdk/lib/matrix'; import type {MatrixClient} from 'matrix-js-sdk/lib/matrix';
import {processCommandInput} from '../../../SlashCommands'; import {processCommandInput} from '../../../SlashCommands';
import { KeyCode, isOnlyCtrlOrCmdKeyEvent } from '../../../Keyboard'; import { isOnlyCtrlOrCmdKeyEvent, Key} from '../../../Keyboard';
import Modal from '../../../Modal'; import Modal from '../../../Modal';
import sdk from '../../../index'; import sdk from '../../../index';
import { _t } from '../../../languageHandler'; import { _t } from '../../../languageHandler';
@ -608,12 +608,12 @@ export default class MessageComposerInput extends React.Component {
// Navigate autocomplete list with arrow keys // Navigate autocomplete list with arrow keys
if (this.autocomplete.countCompletions() > 0) { if (this.autocomplete.countCompletions() > 0) {
if (!(ev.ctrlKey || ev.shiftKey || ev.altKey || ev.metaKey)) { if (!(ev.ctrlKey || ev.shiftKey || ev.altKey || ev.metaKey)) {
switch (ev.keyCode) { switch (ev.key) {
case KeyCode.UP: case Key.ARROW_UP:
this.autocomplete.moveSelection(-1); this.autocomplete.moveSelection(-1);
ev.preventDefault(); ev.preventDefault();
return true; return true;
case KeyCode.DOWN: case Key.ARROW_DOWN:
this.autocomplete.moveSelection(+1); this.autocomplete.moveSelection(+1);
ev.preventDefault(); ev.preventDefault();
return true; return true;
@ -623,38 +623,38 @@ export default class MessageComposerInput extends React.Component {
// skip void nodes - see // skip void nodes - see
// https://github.com/ianstormtaylor/slate/issues/762#issuecomment-304855095 // https://github.com/ianstormtaylor/slate/issues/762#issuecomment-304855095
if (ev.keyCode === KeyCode.LEFT) { if (ev.key === Key.ARROW_LEFT) {
this.direction = 'Previous'; this.direction = 'Previous';
} else if (ev.keyCode === KeyCode.RIGHT) { } else if (ev.key === Key.ARROW_RIGHT) {
this.direction = 'Next'; this.direction = 'Next';
} }
switch (ev.keyCode) { switch (ev.key) {
case KeyCode.ENTER: case Key.ENTER:
return this.handleReturn(ev, change); return this.handleReturn(ev, change);
case KeyCode.BACKSPACE: case Key.BACKSPACE:
return this.onBackspace(ev, change); return this.onBackspace(ev, change);
case KeyCode.UP: case Key.ARROW_UP:
return this.onVerticalArrow(ev, true); return this.onVerticalArrow(ev, true);
case KeyCode.DOWN: case Key.ARROW_DOWN:
return this.onVerticalArrow(ev, false); return this.onVerticalArrow(ev, false);
case KeyCode.TAB: case Key.TAB:
return this.onTab(ev); return this.onTab(ev);
case KeyCode.ESCAPE: case Key.ESCAPE:
return this.onEscape(ev); return this.onEscape(ev);
case KeyCode.SPACE: case Key.SPACE:
return this.onSpace(ev, change); return this.onSpace(ev, change);
} }
if (isOnlyCtrlOrCmdKeyEvent(ev)) { if (isOnlyCtrlOrCmdKeyEvent(ev)) {
const ctrlCmdCommand = { const ctrlCmdCommand = {
// C-m => Toggles between rich text and markdown modes // C-m => Toggles between rich text and markdown modes
[KeyCode.KEY_M]: 'toggle-mode', [Key.M]: 'toggle-mode',
[KeyCode.KEY_B]: 'bold', [Key.B]: 'bold',
[KeyCode.KEY_I]: 'italic', [Key.I]: 'italic',
[KeyCode.KEY_U]: 'underlined', [Key.U]: 'underlined',
[KeyCode.KEY_J]: 'inline-code', [Key.J]: 'inline-code',
}[ev.keyCode]; }[ev.key];
if (ctrlCmdCommand) { if (ctrlCmdCommand) {
ev.preventDefault(); // to prevent clashing with Mac's minimize window ev.preventDefault(); // to prevent clashing with Mac's minimize window

View file

@ -19,6 +19,7 @@ import createReactClass from 'create-react-class';
const classNames = require('classnames'); const classNames = require('classnames');
const AccessibleButton = require('../../../components/views/elements/AccessibleButton'); const AccessibleButton = require('../../../components/views/elements/AccessibleButton');
import { _t } from '../../../languageHandler'; import { _t } from '../../../languageHandler';
import {Key} from "../../../Keyboard";
module.exports = createReactClass({ module.exports = createReactClass({
displayName: 'SearchBar', displayName: 'SearchBar',
@ -42,11 +43,13 @@ module.exports = createReactClass({
}, },
onSearchChange: function(e) { onSearchChange: function(e) {
if (e.keyCode === 13) { // on enter... switch (e.key) {
case Key.ENTER:
this.onSearch(); this.onSearch();
} break;
if (e.keyCode === 27) { // escape... case Key.ESCAPE:
this.props.onCancelClick(); this.props.onCancelClick();
break;
} }
}, },

View file

@ -20,6 +20,7 @@ import PropTypes from 'prop-types';
import sdk from '../../../index'; import sdk from '../../../index';
import { _t } from '../../../languageHandler'; import { _t } from '../../../languageHandler';
import dis from '../../../dispatcher'; import dis from '../../../dispatcher';
import {Key} from "../../../Keyboard";
export default class IntegrationManager extends React.Component { export default class IntegrationManager extends React.Component {
static propTypes = { static propTypes = {
@ -52,7 +53,7 @@ export default class IntegrationManager extends React.Component {
} }
onKeyDown = (ev) => { onKeyDown = (ev) => {
if (ev.keyCode === 27) { // escape if (ev.key === Key.ESCAPE) {
ev.stopPropagation(); ev.stopPropagation();
ev.preventDefault(); ev.preventDefault();
this.props.onFinished(); this.props.onFinished();