on roomsublist invite badge click goto first room/group

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/21833/head
Michael Telatynski 2018-06-27 09:49:58 +01:00
parent b3341e6664
commit 613e83edb4
No known key found for this signature in database
GPG Key ID: 3F879DA5AD802A5E
1 changed files with 24 additions and 1 deletions

View File

@ -26,6 +26,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 { KeyCode } from '../../Keyboard'; import { KeyCode } from '../../Keyboard';
import { Group } from 'matrix-js-sdk';
// turn this on for drop & drag console debugging galore // turn this on for drop & drag console debugging galore
@ -260,6 +261,28 @@ const RoomSubList = React.createClass({
} }
}, },
_onInviteBadgeClick: function(e) {
// prevent the roomsublist collapsing
e.preventDefault();
e.stopPropagation();
// switch to first room in sortedList as that'll be the top of the list for the user
if (this.state.sortedList && this.state.sortedList.length > 0) {
dis.dispatch({
action: 'view_room',
room_id: this.state.sortedList[0].roomId,
});
} else if (this.props.extraTiles && this.props.extraTiles.length > 0) {
// Group Invites are different in that they are all extra tiles and not rooms
// XXX: this is a horrible special case because Group Invite sublist is a hack
if (this.props.extraTiles[0].props && this.props.extraTiles[0].props.group instanceof Group) {
dis.dispatch({
action: 'view_group',
group_id: this.props.extraTiles[0].props.group.groupId,
});
}
}
},
_getHeaderJsx: function() { _getHeaderJsx: function() {
const subListNotifications = this.roomNotificationCount(); const subListNotifications = this.roomNotificationCount();
const subListNotifCount = subListNotifications[0]; const subListNotifCount = subListNotifications[0];
@ -286,7 +309,7 @@ const RoomSubList = React.createClass({
</div>; </div>;
} else if (this.props.isInvite) { } else if (this.props.isInvite) {
// no notifications but highlight anyway because this is an invite badge // no notifications but highlight anyway because this is an invite badge
badge = <div className={badgeClasses}>!</div>; badge = <div className={badgeClasses} onClick={this._onInviteBadgeClick}>!</div>;
} }
// When collapsed, allow a long hover on the header to show user // When collapsed, allow a long hover on the header to show user