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

Commit

Permalink
Merge pull request #2383 from matrix-org/travis/back-button
Browse files Browse the repository at this point in the history
Fix browser navigation not working between /home, /login, /register, etc
  • Loading branch information
turt2live authored Jan 3, 2019
2 parents 5098b28 + e519281 commit 7859228
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 11 deletions.
8 changes: 6 additions & 2 deletions src/components/structures/HomePage.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,15 @@ class HomePage extends React.Component {
this._unmounted = true;
}

onLoginClick() {
onLoginClick(ev) {
ev.preventDefault();
ev.stopPropagation();
dis.dispatch({ action: 'start_login' });
}

onRegisterClick() {
onRegisterClick(ev) {
ev.preventDefault();
ev.stopPropagation();
dis.dispatch({ action: 'start_registration' });
}

Expand Down
9 changes: 5 additions & 4 deletions src/components/structures/MatrixChat.js
Original file line number Diff line number Diff line change
Expand Up @@ -927,6 +927,10 @@ export default React.createClass({
},

_viewHome: function() {
// The home page requires the "logged in" view, so we'll set that.
this.setStateForNewView({
view: VIEWS.LOGGED_IN,
});
this._setPage(PageTypes.HomePage);
this.notifyNewScreen('home');
},
Expand Down Expand Up @@ -1183,10 +1187,7 @@ export default React.createClass({
* @param {string} teamToken
*/
_onLoggedIn: async function(teamToken) {
this.setState({
view: VIEWS.LOGGED_IN,
});

this.setStateForNewView({view: VIEWS.LOGGED_IN});
if (teamToken) {
// A team member has logged in, not a guest
this._teamToken = teamToken;
Expand Down
16 changes: 14 additions & 2 deletions src/components/structures/login/ForgotPassword.js
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,18 @@ module.exports = React.createClass({
this.setState(newState);
},

onLoginClick: function(ev) {
ev.preventDefault();
ev.stopPropagation();
this.props.onLoginClick();
},

onRegisterClick: function(ev) {
ev.preventDefault();
ev.stopPropagation();
this.props.onRegisterClick();
},

showErrorDialog: function(body, title) {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Modal.createTrackedDialog('Forgot Password Error', '', ErrorDialog, {
Expand Down Expand Up @@ -253,10 +265,10 @@ module.exports = React.createClass({
</form>
{ serverConfigSection }
{ errorText }
<a className="mx_Login_create" onClick={this.props.onLoginClick} href="#">
<a className="mx_Login_create" onClick={this.onLoginClick} href="#">
{ _t('Return to login screen') }
</a>
<a className="mx_Login_create" onClick={this.props.onRegisterClick} href="#">
<a className="mx_Login_create" onClick={this.onRegisterClick} href="#">
{ _t('Create an account') }
</a>
<LanguageSelector />
Expand Down
13 changes: 11 additions & 2 deletions src/components/structures/login/Login.js
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,10 @@ module.exports = React.createClass({
}).done();
},

_onLoginAsGuestClick: function() {
_onLoginAsGuestClick: function(ev) {
ev.preventDefault();
ev.stopPropagation();

const self = this;
self.setState({
busy: true,
Expand Down Expand Up @@ -297,6 +300,12 @@ module.exports = React.createClass({
});
},

onRegisterClick: function(ev) {
ev.preventDefault();
ev.stopPropagation();
this.props.onRegisterClick();
},

_tryWellKnownDiscovery: async function(serverName) {
if (!serverName.trim()) {
// Nothing to discover
Expand Down Expand Up @@ -567,7 +576,7 @@ module.exports = React.createClass({
{ errorTextSection }
{ this.componentForStep(this.state.currentFlow) }
{ serverConfig }
<a className="mx_Login_create" onClick={this.props.onRegisterClick} href="#">
<a className="mx_Login_create" onClick={this.onRegisterClick} href="#">
{ _t('Create an account') }
</a>
{ loginAsGuestJsx }
Expand Down
8 changes: 7 additions & 1 deletion src/components/structures/login/Registration.js
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,12 @@ module.exports = React.createClass({
}
},

onLoginClick: function(ev) {
ev.preventDefault();
ev.stopPropagation();
this.props.onLoginClick();
},

_makeRegisterRequest: function(auth) {
// Only send the bind params if we're sending username / pw params
// (Since we need to send no params at all to use the ones saved in the
Expand Down Expand Up @@ -468,7 +474,7 @@ module.exports = React.createClass({
let signIn;
if (!this.state.doingUIAuth) {
signIn = (
<a className="mx_Login_create" onClick={this.props.onLoginClick} href="#">
<a className="mx_Login_create" onClick={this.onLoginClick} href="#">
{ theme === 'status' ? _t('Sign in') : _t('I already have an account') }
</a>
);
Expand Down

0 comments on commit 7859228

Please sign in to comment.