mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-15 20:54:59 +08:00
Handle edge cases
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
This commit is contained in:
parent
b94dc2d0e5
commit
255ab49ccb
@ -119,7 +119,29 @@ export default class RoomDirectory extends React.Component<IProps, IState> {
|
|||||||
} else if (!selectedCommunityId) {
|
} else if (!selectedCommunityId) {
|
||||||
MatrixClientPeg.get().getThirdpartyProtocols().then((response) => {
|
MatrixClientPeg.get().getThirdpartyProtocols().then((response) => {
|
||||||
this.protocols = response;
|
this.protocols = response;
|
||||||
this.setState({ protocolsLoading: false });
|
const myHomeserver = MatrixClientPeg.getHomeserverName();
|
||||||
|
const lsRoomServer = localStorage.getItem(LAST_SERVER_KEY);
|
||||||
|
const lsInstanceId = localStorage.getItem(LAST_INSTANCE_KEY);
|
||||||
|
const configSevers = SdkConfig.get().roomDirectory?.servers || [];
|
||||||
|
const roomServer = configSevers.includes(lsRoomServer)
|
||||||
|
? lsRoomServer
|
||||||
|
: myHomeserver;
|
||||||
|
const instanceIds = [];
|
||||||
|
if (roomServer === myHomeserver) {
|
||||||
|
Object.values(this.protocols).forEach((protocol) => {
|
||||||
|
protocol.instances.forEach((instance) => instanceIds.push(instance.instance_id));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const instanceId = (instanceIds.includes(lsInstanceId) || lsInstanceId === ALL_ROOMS)
|
||||||
|
? lsInstanceId
|
||||||
|
: null;
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
protocolsLoading: false,
|
||||||
|
instanceId: instanceId,
|
||||||
|
roomServer: roomServer,
|
||||||
|
});
|
||||||
|
this.refreshRoomList();
|
||||||
}, (err) => {
|
}, (err) => {
|
||||||
console.warn(`error loading third party protocols: ${err}`);
|
console.warn(`error loading third party protocols: ${err}`);
|
||||||
this.setState({ protocolsLoading: false });
|
this.setState({ protocolsLoading: false });
|
||||||
@ -153,8 +175,8 @@ export default class RoomDirectory extends React.Component<IProps, IState> {
|
|||||||
publicRooms: [],
|
publicRooms: [],
|
||||||
loading: true,
|
loading: true,
|
||||||
error: null,
|
error: null,
|
||||||
instanceId: localStorage.getItem(LAST_INSTANCE_KEY),
|
instanceId: null,
|
||||||
roomServer: localStorage.getItem(LAST_SERVER_KEY) || MatrixClientPeg.getHomeserverName(),
|
roomServer: null,
|
||||||
filterString: this.props.initialText || "",
|
filterString: this.props.initialText || "",
|
||||||
selectedCommunityId,
|
selectedCommunityId,
|
||||||
communityName: null,
|
communityName: null,
|
||||||
|
Loading…
Reference in New Issue
Block a user