mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-17 22:14:58 +08:00
Merge pull request #867 from matrix-org/t3chguy/BaseDialog-patch1
Fixes 2 issues with Dialog closing
This commit is contained in:
commit
3549ff2543
@ -57,20 +57,25 @@ export default React.createClass({
|
||||
}
|
||||
},
|
||||
|
||||
// Don't let key{down,press} events escape the modal. Consume them all.
|
||||
_eatKeyEvent: function(e) {
|
||||
e.stopPropagation();
|
||||
},
|
||||
|
||||
// Must be when the key is released (and not pressed) otherwise componentWillUnmount
|
||||
// will focus another element which will receive future key events
|
||||
_onKeyUp: function(e) {
|
||||
if (e.keyCode === KeyCode.ESCAPE) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
this.props.onFinished();
|
||||
} else if (e.keyCode === KeyCode.ENTER) {
|
||||
if (this.props.onEnterPressed) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
this.props.onEnterPressed(e);
|
||||
}
|
||||
}
|
||||
// Consume all keyup events while Modal is open
|
||||
e.stopPropagation();
|
||||
},
|
||||
|
||||
_onCancelClick: function(e) {
|
||||
@ -81,7 +86,11 @@ export default React.createClass({
|
||||
const TintableSvg = sdk.getComponent("elements.TintableSvg");
|
||||
|
||||
return (
|
||||
<div onKeyUp={this._onKeyUp} className={this.props.className}>
|
||||
<div onKeyUp={this._onKeyUp}
|
||||
onKeyDown={this._eatKeyEvent}
|
||||
onKeyPress={this._eatKeyEvent}
|
||||
className={this.props.className}
|
||||
>
|
||||
<AccessibleButton onClick={this._onCancelClick}
|
||||
className="mx_Dialog_cancelButton"
|
||||
>
|
||||
|
Loading…
Reference in New Issue
Block a user