clear tag panel selection if the community selected is left

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/21833/head
Michael Telatynski 2020-05-08 00:05:16 +01:00
parent 2aa7a6087c
commit fa0f704b56
2 changed files with 16 additions and 3 deletions

View File

@ -18,6 +18,7 @@ import EventEmitter from 'events';
import { groupMemberFromApiObject, groupRoomFromApiObject } from '../groups'; import { groupMemberFromApiObject, groupRoomFromApiObject } from '../groups';
import FlairStore from './FlairStore'; import FlairStore from './FlairStore';
import {MatrixClientPeg} from '../MatrixClientPeg'; import {MatrixClientPeg} from '../MatrixClientPeg';
import dis from '../dispatcher';
function parseMembersResponse(response) { function parseMembersResponse(response) {
return response.chunk.map((apiMember) => groupMemberFromApiObject(apiMember)); return response.chunk.map((apiMember) => groupMemberFromApiObject(apiMember));
@ -295,6 +296,11 @@ class GroupStore extends EventEmitter {
} }
leaveGroup(groupId) { leaveGroup(groupId) {
// ensure the tag panel filter is cleared if the group was selected
dis.dispatch({
action: "deselect_tags",
tag: groupId,
});
return MatrixClientPeg.get().leaveGroup(groupId) return MatrixClientPeg.get().leaveGroup(groupId)
// The user should now not be able to access group settings // The user should now not be able to access group settings
.then(this._fetchResource.bind(this, this.STATE_KEY.Summary, groupId)) .then(this._fetchResource.bind(this, this.STATE_KEY.Summary, groupId))

View File

@ -168,9 +168,16 @@ class TagOrderStore extends Store {
} }
break; break;
case 'deselect_tags': case 'deselect_tags':
this._setState({ if (payload.tag) {
selectedTags: [], // if a tag is passed, only deselect that tag
}); this._setState({
selectedTags: this._state.selectedTags.filter(tag => tag !== payload.tag),
});
} else {
this._setState({
selectedTags: [],
});
}
Analytics.trackEvent('FilterStore', 'deselect_tags'); Analytics.trackEvent('FilterStore', 'deselect_tags');
break; break;
case 'on_client_not_viable': case 'on_client_not_viable':