mirror of
https://github.com/element-hq/element-web
synced 2024-11-28 20:38:55 +03:00
move focus-via-up/down cursors to LeftPanel
This commit is contained in:
parent
4fb9635175
commit
062963b32f
1 changed files with 0 additions and 81 deletions
|
@ -27,7 +27,6 @@ var sdk = require('../../../index');
|
||||||
var rate_limited_func = require('../../../ratelimitedfunc');
|
var rate_limited_func = require('../../../ratelimitedfunc');
|
||||||
var Rooms = require('../../../Rooms');
|
var Rooms = require('../../../Rooms');
|
||||||
import DMRoomMap from '../../../utils/DMRoomMap';
|
import DMRoomMap from '../../../utils/DMRoomMap';
|
||||||
import KeyCode from '../../../KeyCode';
|
|
||||||
var Receipt = require('../../../utils/Receipt');
|
var Receipt = require('../../../utils/Receipt');
|
||||||
var constantTimeDispatcher = require('../../../ConstantTimeDispatcher');
|
var constantTimeDispatcher = require('../../../ConstantTimeDispatcher');
|
||||||
|
|
||||||
|
@ -71,15 +70,12 @@ module.exports = React.createClass({
|
||||||
|
|
||||||
// order of the sublists
|
// order of the sublists
|
||||||
this.listOrder = [];
|
this.listOrder = [];
|
||||||
|
|
||||||
this.focusedElement = null;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
componentDidMount: function() {
|
componentDidMount: function() {
|
||||||
this.dispatcherRef = dis.register(this.onAction);
|
this.dispatcherRef = dis.register(this.onAction);
|
||||||
// Initialise the stickyHeaders when the component is created
|
// Initialise the stickyHeaders when the component is created
|
||||||
this._updateStickyHeaders(true);
|
this._updateStickyHeaders(true);
|
||||||
document.addEventListener('keydown', this._onKeyDown);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
componentDidUpdate: function() {
|
componentDidUpdate: function() {
|
||||||
|
@ -173,83 +169,6 @@ module.exports = React.createClass({
|
||||||
this._lastMouseOverTs = Date.now();
|
this._lastMouseOverTs = Date.now();
|
||||||
},
|
},
|
||||||
|
|
||||||
_onKeyDown: function(ev) {
|
|
||||||
if (!this.focusedElement) return;
|
|
||||||
let handled = false;
|
|
||||||
|
|
||||||
switch (ev.keyCode) {
|
|
||||||
case KeyCode.UP:
|
|
||||||
this._onMoveFocus(true);
|
|
||||||
handled = true;
|
|
||||||
break;
|
|
||||||
case KeyCode.DOWN:
|
|
||||||
this._onMoveFocus(false);
|
|
||||||
handled = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (handled) {
|
|
||||||
ev.stopPropagation();
|
|
||||||
ev.preventDefault();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_onMoveFocus: function(up) {
|
|
||||||
var element = this.focusedElement;
|
|
||||||
|
|
||||||
// unclear why this isn't needed...
|
|
||||||
// var descending = (up == this.focusDirection) ? this.focusDescending : !this.focusDescending;
|
|
||||||
// this.focusDirection = up;
|
|
||||||
|
|
||||||
var descending = false;
|
|
||||||
var classes;
|
|
||||||
|
|
||||||
do {
|
|
||||||
var child = up ? element.lastElementChild : element.firstElementChild;
|
|
||||||
var sibling = up ? element.previousElementSibling : element.nextElementSibling;
|
|
||||||
|
|
||||||
if (descending) {
|
|
||||||
if (child) {
|
|
||||||
element = child;
|
|
||||||
}
|
|
||||||
else if (sibling) {
|
|
||||||
element = sibling;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
descending = false;
|
|
||||||
element = element.parentElement;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (sibling) {
|
|
||||||
element = sibling;
|
|
||||||
descending = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
element = element.parentElement;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element) {
|
|
||||||
classes = element.classList;
|
|
||||||
if (classes.contains("mx_LeftPanel")) { // we hit the top
|
|
||||||
element = up ? element.lastElementChild : element.firstElementChild;
|
|
||||||
descending = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} while(element && !(
|
|
||||||
classes.contains("mx_RoomTile") ||
|
|
||||||
classes.contains("mx_SearchBox_search") ||
|
|
||||||
classes.contains("mx_RoomSubList_ellipsis")));
|
|
||||||
|
|
||||||
if (element) {
|
|
||||||
element.focus();
|
|
||||||
this.focusedElement = element;
|
|
||||||
this.focusedDescending = descending;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onSubListHeaderClick: function(isHidden, scrollToPosition) {
|
onSubListHeaderClick: function(isHidden, scrollToPosition) {
|
||||||
// The scroll area has expanded or contracted, so re-calculate sticky headers positions
|
// The scroll area has expanded or contracted, so re-calculate sticky headers positions
|
||||||
this._updateStickyHeaders(true, scrollToPosition);
|
this._updateStickyHeaders(true, scrollToPosition);
|
||||||
|
|
Loading…
Reference in a new issue