diff options
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/components/root.jsx | 23 | ||||
-rw-r--r-- | webapp/components/signup_team_complete/components/signup_team_complete.jsx | 4 | ||||
-rw-r--r-- | webapp/root.jsx | 20 |
3 files changed, 24 insertions, 23 deletions
diff --git a/webapp/components/root.jsx b/webapp/components/root.jsx index 3b85b23fd..59364d085 100644 --- a/webapp/components/root.jsx +++ b/webapp/components/root.jsx @@ -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/>; } diff --git a/webapp/components/signup_team_complete/components/signup_team_complete.jsx b/webapp/components/signup_team_complete/components/signup_team_complete.jsx index e5d310151..95b41dbde 100644 --- a/webapp/components/signup_team_complete/components/signup_team_complete.jsx +++ b/webapp/components/signup_team_complete/components/signup_team_complete.jsx @@ -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) { diff --git a/webapp/root.jsx b/webapp/root.jsx index da5980c33..417a13659 100644 --- a/webapp/root.jsx +++ b/webapp/root.jsx @@ -158,23 +158,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; @@ -225,7 +208,6 @@ function renderRootComponent() { <Route path='/' component={Root} - onEnter={onRootEnter} > <Route path='error' @@ -332,7 +314,7 @@ function renderRootComponent() { component={TeamURLPage} /> <Route - path='invites' + path='send_invites' component={SendInivtesPage} /> <Route |