Implement warm-fuzzy success dialog for SetMxIdDialog

This commit is contained in:
Luke Barnard 2017-05-19 09:43:56 +01:00
parent 818f21c248
commit 96c3bf56f8

View file

@ -53,6 +53,9 @@ export default React.createClass({
doingUIAuth: false, doingUIAuth: false,
// Indicate error with auth // Indicate error with auth
authError: '', authError: '',
// Indicate success of setting mxid
success: false,
}; };
}, },
@ -95,6 +98,10 @@ export default React.createClass({
}); });
}, },
onSuccessContinue: function() {
this.props.onFinished(true, this._registeredCreds);
},
_doUsernameCheck: function() { _doUsernameCheck: function() {
// Check if username is available // Check if username is available
return this._matrixClient.isUsernameAvailable(this.state.username).then( return this._matrixClient.isUsernameAvailable(this.state.username).then(
@ -162,7 +169,7 @@ export default React.createClass({
// XXX Implement RTS /register here // XXX Implement RTS /register here
const teamToken = null; const teamToken = null;
this.props.onFinished(true, { this._registeredCreds = {
userId: response.user_id, userId: response.user_id,
deviceId: response.device_id, deviceId: response.device_id,
homeserverUrl: this._matrixClient.getHomeserverUrl(), homeserverUrl: this._matrixClient.getHomeserverUrl(),
@ -170,6 +177,11 @@ export default React.createClass({
accessToken: response.access_token, accessToken: response.access_token,
password: this._generatedPassword, password: this._generatedPassword,
teamToken: teamToken, teamToken: teamToken,
};
// Before continuing, show a warm-fuzzy success and only submit onSuccessContinue
this.setState({
success: true,
}); });
}, },
@ -219,6 +231,30 @@ export default React.createClass({
!this.state.usernameError && !this.state.usernameError &&
!this.state.usernameBusy; !this.state.usernameBusy;
if (this.state.success) {
return (
<BaseDialog className="mx_SetMxIdDialog"
title="You have successfully picked a username!"
>
<div className="mx_Dialog_content">
<p>
You have successfully
picked <b>{ this.state.username }</b> as your
username and you now have access to the full
set of features on Riot.
</p>
</div>
<div className="mx_Dialog_buttons">
<input className="mx_Dialog_primary"
type="submit"
value="Continue"
onClick={this.onSuccessContinue}
/>
</div>
</BaseDialog>
);
}
return ( return (
<BaseDialog className="mx_SetMxIdDialog" <BaseDialog className="mx_SetMxIdDialog"
onFinished={this.props.onFinished} onFinished={this.props.onFinished}