Merge pull request #3188 from matrix-org/travis/soft-logout-non-default-hs

Fix React crash when using a non-default homeserver on soft logout
This commit is contained in:
Travis Ralston 2019-07-09 11:32:31 -06:00 committed by GitHub
commit a33e5f1918
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 7 deletions

View file

@ -199,7 +199,7 @@ class MatrixClientPeg {
* Throws an error if unable to deduce the homeserver name * Throws an error if unable to deduce the homeserver name
* (eg. if the user is not logged in) * (eg. if the user is not logged in)
*/ */
getHomeServerName() { getHomeserverName() {
const matches = /^@.+:(.+)$/.exec(this.matrixClient.credentials.userId); const matches = /^@.+:(.+)$/.exec(this.matrixClient.credentials.userId);
if (matches === null || matches.length < 1) { if (matches === null || matches.length < 1) {
throw new Error("Failed to derive homeserver name from user ID!"); throw new Error("Failed to derive homeserver name from user ID!");

View file

@ -145,7 +145,7 @@ module.exports = React.createClass({
// too. If it's changed, appending to the list will corrupt it. // too. If it's changed, appending to the list will corrupt it.
const my_next_batch = this.nextBatch; const my_next_batch = this.nextBatch;
const opts = {limit: 20}; const opts = {limit: 20};
if (my_server != MatrixClientPeg.getHomeServerName()) { if (my_server != MatrixClientPeg.getHomeserverName()) {
opts.server = my_server; opts.server = my_server;
} }
if (this.state.instanceId) { if (this.state.instanceId) {

View file

@ -52,7 +52,7 @@ export default class SoftLogout extends React.Component {
const hsUrl = MatrixClientPeg.get().getHomeserverUrl(); const hsUrl = MatrixClientPeg.get().getHomeserverUrl();
const domainName = hsUrl === defaultServerConfig.hsUrl const domainName = hsUrl === defaultServerConfig.hsUrl
? defaultServerConfig.hsName ? defaultServerConfig.hsName
: MatrixClientPeg.get().getHomeServerName(); : MatrixClientPeg.getHomeserverName();
const userId = MatrixClientPeg.get().getUserId(); const userId = MatrixClientPeg.get().getUserId();
const user = MatrixClientPeg.get().getUser(userId); const user = MatrixClientPeg.get().getUser(userId);

View file

@ -37,7 +37,7 @@ export default class NetworkDropdown extends React.Component {
this.inputTextBox = null; this.inputTextBox = null;
const server = MatrixClientPeg.getHomeServerName(); const server = MatrixClientPeg.getHomeserverName();
this.state = { this.state = {
expanded: false, expanded: false,
selectedServer: server, selectedServer: server,
@ -138,8 +138,8 @@ export default class NetworkDropdown extends React.Component {
servers = servers.concat(roomDirectory.servers); servers = servers.concat(roomDirectory.servers);
} }
if (!servers.includes(MatrixClientPeg.getHomeServerName())) { if (!servers.includes(MatrixClientPeg.getHomeserverName())) {
servers.unshift(MatrixClientPeg.getHomeServerName()); servers.unshift(MatrixClientPeg.getHomeserverName());
} }
// For our own HS, we can use the instance_ids given in the third party protocols // For our own HS, we can use the instance_ids given in the third party protocols
@ -148,7 +148,7 @@ export default class NetworkDropdown extends React.Component {
// we can only show the default room list. // we can only show the default room list.
for (const server of servers) { for (const server of servers) {
options.push(this._makeMenuOption(server, null, true)); options.push(this._makeMenuOption(server, null, true));
if (server === MatrixClientPeg.getHomeServerName()) { if (server === MatrixClientPeg.getHomeserverName()) {
options.push(this._makeMenuOption(server, null, false)); options.push(this._makeMenuOption(server, null, false));
if (this.props.protocols) { if (this.props.protocols) {
for (const proto of Object.keys(this.props.protocols)) { for (const proto of Object.keys(this.props.protocols)) {