[FIX] Rooms grouping not working properly (#1435)

This commit is contained in:
Diego Mello 2019-12-03 09:32:02 -03:00 committed by GitHub
parent 7cdf6394fc
commit 224ff5fe44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 14 deletions

View File

@ -67,6 +67,9 @@ const CHANNELS_HEADER = 'Channels';
const DM_HEADER = 'Direct_Messages';
const GROUPS_HEADER = 'Private_Groups';
const filterIsUnread = s => (s.unread > 0 || s.alert) && !s.hideUnreadStatus;
const filterIsFavorite = s => s.f;
const shouldUpdateProps = [
'searchText',
'loadingServer',
@ -404,14 +407,16 @@ class RoomsListView extends React.Component {
// unread
if (showUnread) {
const unread = chats.filter(s => (s.unread > 0 || s.alert) && !s.hideUnreadStatus);
const unread = chats.filter(s => filterIsUnread(s));
chats = chats.filter(s => !filterIsUnread(s));
tempChats = this.addRoomsGroup(unread, UNREAD_HEADER, tempChats);
}
// favorites
if (showFavorites) {
const favorites = chats.filter(s => s.f);
tempChats = this.addRoomsGroup(favorites, FAVORITES_HEADER, tempChats);
const favorites = chats.filter(s => filterIsFavorite(s));
chats = chats.filter(s => !filterIsFavorite(s));
tempChats = this.addRoomsGroup(favorites, FAVORITES_HEADER, tempChats);
}
// type
@ -420,18 +425,14 @@ class RoomsListView extends React.Component {
const channels = chats.filter(s => s.t === 'c' && !s.prid);
const privateGroup = chats.filter(s => s.t === 'p' && !s.prid);
const direct = chats.filter(s => s.t === 'd' && !s.prid);
tempChats = this.addRoomsGroup(discussions, DISCUSSIONS_HEADER, tempChats);
tempChats = this.addRoomsGroup(channels, CHANNELS_HEADER, tempChats);
tempChats = this.addRoomsGroup(privateGroup, GROUPS_HEADER, tempChats);
tempChats = this.addRoomsGroup(direct, DM_HEADER, tempChats);
} else if (showUnread) {
chats = chats.filter(s => (!s.unread && !s.alert) || s.hideUnreadStatus);
tempChats = this.addRoomsGroup(chats, CHATS_HEADER, tempChats);
} else if (showFavorites) {
chats = chats.filter(s => !s.f);
tempChats = this.addRoomsGroup(chats, CHATS_HEADER, tempChats);
tempChats = this.addRoomsGroup(discussions, DISCUSSIONS_HEADER, tempChats);
tempChats = this.addRoomsGroup(channels, CHANNELS_HEADER, tempChats);
tempChats = this.addRoomsGroup(privateGroup, GROUPS_HEADER, tempChats);
tempChats = this.addRoomsGroup(direct, DM_HEADER, tempChats);
} else if (showUnread || showFavorites) {
tempChats = this.addRoomsGroup(chats, CHATS_HEADER, tempChats);
} else {
tempChats = chats;
tempChats = chats;
}
this.internalSetState({