Fixing signup flow. Better root redirect. Fixes back buttons.

Этот коммит содержится в:
Christopher Speller
2016-04-01 09:26:28 -04:00
родитель 36f611fac4
Коммит 35b63caafc
3 изменённых файлов: 24 добавлений и 23 удалений

Просмотреть файл

@@ -3,6 +3,7 @@
import $ from 'jquery';
import * as GlobalActions from 'action_creators/global_actions.jsx';
import * as Client from 'utils/client.jsx';
import BrowserStore from 'stores/browser_store.jsx';
import LocalizationStore from 'stores/localization_store.jsx';
@@ -12,6 +13,8 @@ import React from 'react';
import FastClick from 'fastclick';
import {browserHistory} from 'react-router';
export default class Root extends React.Component {
constructor(props) {
super(props);
@@ -21,10 +24,25 @@ export default class Root extends React.Component {
};
this.localizationChanged = this.localizationChanged.bind(this);
this.redirectIfNecessary = this.redirectIfNecessary.bind(this);
}
localizationChanged() {
this.setState({locale: LocalizationStore.getLocale(), translations: LocalizationStore.getTranslations()});
}
redirectIfNecessary(props) {
if (props.location.pathname === '/') {
Client.getMeLoggedIn((data) => {
if (!data || data.logged_in === 'false') {
browserHistory.push('/signup_team');
} else {
browserHistory.push('/' + data.team_name + '/channels/town-square');
}
});
}
}
componentWillReceiveProps(newProps) {
this.redirectIfNecessary(newProps);
}
componentWillMount() {
// Setup localization listener
LocalizationStore.addChangeListener(this.localizationChanged);
@@ -70,12 +88,15 @@ export default class Root extends React.Component {
// Get our localizaiton
GlobalActions.loadBrowserLocale();
// Redirect if Necessary
this.redirectIfNecessary(this.props);
}
componentWillUnmount() {
LocalizationStore.removeChangeListener(this.localizationChanged);
}
render() {
if (this.state.translations == null) {
if (this.state.translations == null || this.props.children == null) {
return <div/>;
}

Просмотреть файл

@@ -5,10 +5,8 @@ import BrowserStore from 'stores/browser_store.jsx';
import {FormattedMessage} from 'react-intl';
import {browserHistory} from 'react-router';
import React from 'react';
import {Link} from 'react-router';
import {Link, browserHistory} from 'react-router';
export default class SignupTeamComplete extends React.Component {
constructor(props) {

Просмотреть файл

@@ -149,23 +149,6 @@ function preLoggedIn(nextState, replace, callback) {
});
}
function onRootEnter(nextState, replace, callback) {
if (nextState.location.pathname === '/') {
Client.getMeLoggedIn((data) => {
if (!data || data.logged_in === 'false') {
replace({pathname: '/signup_team'});
callback();
} else {
replace({pathname: '/' + data.team_name + '/channels/town-square'});
callback();
}
});
return;
}
callback();
}
function onPermalinkEnter(nextState) {
const postId = nextState.params.postid;
@@ -216,7 +199,6 @@ function renderRootComponent() {
<Route
path='/'
component={Root}
onEnter={onRootEnter}
>
<Route
component={LoggedIn}
@@ -314,7 +296,7 @@ function renderRootComponent() {
component={TeamURLPage}
/>
<Route
path='invites'
path='send_invites'
component={SendInivtesPage}
/>
<Route