don't block Shift+Tab keypresses

This commit is contained in:
Bruno Windels 2019-09-26 11:00:55 +02:00
parent b248918aca
commit f5b9373eb5

View file

@ -323,25 +323,35 @@ export default class BasicMessageEditor extends React.Component {
this._insertText("\n");
handled = true;
// autocomplete or enter to send below shouldn't have any modifier keys pressed.
} else if (!(event.metaKey || event.altKey || event.shiftKey)) {
} else {
const metaOrAltPressed = event.metaKey || event.altKey;
const modifierPressed = metaOrAltPressed || event.shiftKey;
if (model.autoComplete && model.autoComplete.hasCompletions()) {
const autoComplete = model.autoComplete;
switch (event.key) {
case "ArrowUp":
if (!modifierPressed) {
autoComplete.onUpArrow(event);
handled = true;
}
break;
case "ArrowDown":
if (!modifierPressed) {
autoComplete.onDownArrow(event);
handled = true;
}
break;
case "Tab":
if (!metaOrAltPressed) {
autoComplete.onTab(event);
handled = true;
}
break;
case "Escape":
if (!modifierPressed) {
autoComplete.onEscape(event);
handled = true;
}
break;
default:
return; // don't preventDefault on anything else