Merge pull request #3067 from matrix-org/travis/fail-fast-but-not-too-fast

Fail more softly on homeserver liveliness errors
This commit is contained in:
Travis Ralston
2019-06-07 07:43:45 -06:00
committed by GitHub
11 changed files with 272 additions and 41 deletions

View File

@@ -108,6 +108,8 @@ export default class ModularServerConfig extends React.PureComponent {
busy: false,
errorText: message,
});
return null;
}
}
@@ -132,7 +134,8 @@ export default class ModularServerConfig extends React.PureComponent {
onSubmit = async (ev) => {
ev.preventDefault();
ev.stopPropagation();
await this.validateServer();
const result = await this.validateServer();
if (!result) return; // Do not continue.
if (this.props.onAfterSubmit) {
this.props.onAfterSubmit();

View File

@@ -53,11 +53,13 @@ module.exports = React.createClass({
onEditServerDetailsClick: PropTypes.func,
flows: PropTypes.arrayOf(PropTypes.object).isRequired,
serverConfig: PropTypes.instanceOf(ValidatedServerConfig).isRequired,
canSubmit: PropTypes.bool,
},
getDefaultProps: function() {
return {
onValidationChange: console.error,
canSubmit: true,
};
},
@@ -80,6 +82,8 @@ module.exports = React.createClass({
onSubmit: async function(ev) {
ev.preventDefault();
if (!this.props.canSubmit) return;
const allFieldsValid = await this.verifyFieldsBeforeSubmit();
if (!allFieldsValid) {
return;
@@ -540,7 +544,7 @@ module.exports = React.createClass({
}
const registerButton = (
<input className="mx_Login_submit" type="submit" value={_t("Register")} />
<input className="mx_Login_submit" type="submit" value={_t("Register")} disabled={!this.props.canSubmit} />
);
return (

View File

@@ -109,6 +109,8 @@ export default class ServerConfig extends React.PureComponent {
busy: false,
errorText: message,
});
return null;
}
}
@@ -137,7 +139,8 @@ export default class ServerConfig extends React.PureComponent {
onSubmit = async (ev) => {
ev.preventDefault();
ev.stopPropagation();
await this.validateServer();
const result = await this.validateServer();
if (!result) return; // Do not continue.
if (this.props.onAfterSubmit) {
this.props.onAfterSubmit();