invites section

This commit is contained in:
Matthew Hodgson 2015-10-24 02:02:33 +01:00
parent b6cac2bc89
commit e718cad053
7 changed files with 66 additions and 26 deletions

View file

@ -35,11 +35,9 @@ module.exports = {
cli.on("Room.name", this.onRoomName);
cli.on("RoomState.events", this.onRoomStateEvents);
var rooms = this.getRoomList();
this.setState({
roomList: rooms,
activityMap: {}
});
var s = this.getRoomLists();
s.activityMap = {};
this.setState(s);
},
componentDidMount: function() {
@ -86,9 +84,7 @@ module.exports = {
onRoomTimeline: function(ev, room, toStartOfTimeline) {
if (toStartOfTimeline) return;
var newState = {
roomList: this.getRoomList()
};
var newState = this.getRoomLists();
if (
room.roomId != this.props.selectedRoom &&
ev.getSender() != MatrixClientPeg.get().credentials.userId)
@ -118,18 +114,23 @@ module.exports = {
refreshRoomList: function() {
var rooms = this.getRoomList();
this.setState({
roomList: rooms
});
this.setState(this.getRoomLists());
},
getRoomList: function() {
return RoomListSorter.mostRecentActivityFirst(
getRoomLists: function() {
var s = {};
var inviteList = [];
s.roomList = RoomListSorter.mostRecentActivityFirst(
MatrixClientPeg.get().getRooms().filter(function(room) {
var me = room.getMember(MatrixClientPeg.get().credentials.userId);
if (me && me.membership == "invite") {
inviteList.push(room);
return false;
}
var shouldShowRoom = (
me && (me.membership == "join" || me.membership == "invite")
me && (me.membership == "join")
);
// hiding conf rooms only ever toggles shouldShowRoom to false
if (shouldShowRoom && HIDE_CONFERENCE_CHANS) {
@ -148,6 +149,8 @@ module.exports = {
return shouldShowRoom;
})
);
s.inviteList = RoomListSorter.mostRecentActivityFirst(inviteList);
return s;
},
_recheckCallElement: function(selectedRoomId) {
@ -169,10 +172,10 @@ module.exports = {
}
},
makeRoomTiles: function() {
makeRoomTiles: function(list, isInvite) {
var self = this;
var RoomTile = sdk.getComponent("molecules.RoomTile");
return this.state.roomList.map(function(room) {
return list.map(function(room) {
var selected = room.roomId == self.props.selectedRoom;
return (
<RoomTile
@ -182,6 +185,7 @@ module.exports = {
selected={selected}
unread={self.state.activityMap[room.roomId] === 1}
highlight={self.state.activityMap[room.roomId] === 2}
isInvite={isInvite}
/>
);
});