Allow changing server if validation has failed

Show the server config section if there's an error and fix an if
case where we forgot to un-set the busy flag
pull/21833/head
David Baker 2019-06-17 18:47:20 +01:00
parent fac6dc25f6
commit 10f6abfe17
2 changed files with 8 additions and 1 deletions

View File

@ -168,6 +168,8 @@ module.exports = React.createClass({
_replaceClient: async function(serverConfig) {
this.setState({
errorText: null,
serverDeadError: null,
serverErrorIsFatal: false,
// busy while we do liveness check (we need to avoid trying to render
// the UI auth component while we don't have a matrix client)
busy: true,
@ -429,7 +431,9 @@ module.exports = React.createClass({
// If we're on a different phase, we only show the server type selector,
// which is always shown if we allow custom URLs at all.
if (PHASES_ENABLED && this.state.phase !== PHASE_SERVER_DETAILS) {
// (if there's a fatal server error, we need to show the full server
// config as the user may need to change servers to resolve the error).
if (PHASES_ENABLED && this.state.phase !== PHASE_SERVER_DETAILS && !this.state.serverErrorIsFatal) {
return <div>
<ServerTypeSelector
selected={this.state.serverType}

View File

@ -104,6 +104,9 @@ export default class ServerConfig extends React.PureComponent {
const stateForError = AutoDiscoveryUtils.authComponentStateForError(e);
if (!stateForError.isFatalError) {
this.setState({
busy: false,
});
// carry on anyway
const result = await AutoDiscoveryUtils.validateServerConfigWithStaticUrls(hsUrl, isUrl, true);
this.props.onServerConfigChange(result);