mirror of
https://github.com/element-hq/element-web
synced 2024-10-28 13:38:29 +03:00
Run the tag selection behaviour through the prototype store too
This commit is contained in:
parent
724e3f6905
commit
133f981fa8
2 changed files with 10 additions and 20 deletions
|
@ -26,6 +26,7 @@ import FlairStore from "./FlairStore";
|
||||||
import TagOrderStore from "./TagOrderStore";
|
import TagOrderStore from "./TagOrderStore";
|
||||||
import { MatrixClientPeg } from "../MatrixClientPeg";
|
import { MatrixClientPeg } from "../MatrixClientPeg";
|
||||||
import GroupStore from "./GroupStore";
|
import GroupStore from "./GroupStore";
|
||||||
|
import dis from "../dispatcher/dispatcher";
|
||||||
|
|
||||||
interface IState {
|
interface IState {
|
||||||
// nothing of value - we use account data
|
// nothing of value - we use account data
|
||||||
|
@ -111,6 +112,15 @@ export class CommunityPrototypeStore extends AsyncStoreWithClient<IState> {
|
||||||
if (payload.event_type.startsWith("im.vector.group_info.")) {
|
if (payload.event_type.startsWith("im.vector.group_info.")) {
|
||||||
this.emit(UPDATE_EVENT, payload.event_type.substring("im.vector.group_info.".length));
|
this.emit(UPDATE_EVENT, payload.event_type.substring("im.vector.group_info.".length));
|
||||||
}
|
}
|
||||||
|
} else if (payload.action === "select_tag") {
|
||||||
|
// Automatically select the general chat when switching communities
|
||||||
|
const chat = this.getGeneralChat(payload.tag);
|
||||||
|
if (chat) {
|
||||||
|
dis.dispatch({
|
||||||
|
action: 'view_room',
|
||||||
|
room_id: chat.roomId,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -166,26 +166,6 @@ class TagOrderStore extends Store {
|
||||||
selectedTags: newTags,
|
selectedTags: newTags,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!allowMultiple && newTags.length === 1) {
|
|
||||||
// We're in prototype behaviour: select the general chat for the community
|
|
||||||
// XXX: This is duplicated with the CommunityPrototypeStore as a cyclical reference
|
|
||||||
const rooms = GroupStore.getGroupRooms(newTags[0])
|
|
||||||
.map(r => MatrixClientPeg.get().getRoom(r.roomId))
|
|
||||||
.filter(r => !!r);
|
|
||||||
let chat = rooms.find(r => {
|
|
||||||
const idState = r.currentState.getStateEvents("im.vector.general_chat", "");
|
|
||||||
if (!idState || idState.getContent()['groupId'] !== newTags[0]) return false;
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
if (!chat) chat = rooms[0];
|
|
||||||
if (chat) {
|
|
||||||
dis.dispatch({
|
|
||||||
action: 'view_room',
|
|
||||||
room_id: chat.roomId,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Analytics.trackEvent('FilterStore', 'select_tag');
|
Analytics.trackEvent('FilterStore', 'select_tag');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue