Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Clear the login busy state after .well-known discovery #3092

Merged
merged 1 commit into from
Jun 11, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion src/components/structures/auth/Login.js
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ module.exports = React.createClass({
const doWellknownLookup = username[0] === "@";
this.setState({
username: username,
busy: doWellknownLookup, // unset later by the result of onServerConfigChange
busy: doWellknownLookup,
errorText: null,
canTryLogin: true,
});
Expand All @@ -250,6 +250,16 @@ module.exports = React.createClass({
try {
const result = await AutoDiscoveryUtils.validateServerName(serverName);
this.props.onServerConfigChange(result);
// We'd like to rely on new props coming in via `onServerConfigChange`
// so that we know the servers have definitely updated before clearing
// the busy state. In the case of a full MXID that resolves to the same
// HS as Riot's default HS though, there may not be any server change.
// To avoid this trap, we clear busy here. For cases where the server
// actually has changed, `_initLoginLogic` will be called and manages
// busy state for its own liveness check.
this.setState({
busy: false,
});
} catch (e) {
console.error("Problem parsing URL or unhandled error doing .well-known discovery:", e);

Expand Down