diff --git a/src/public/js/actions/actionCreators.js b/src/public/js/actions/actionCreators.js index dc51d9b..962276e 100644 --- a/src/public/js/actions/actionCreators.js +++ b/src/public/js/actions/actionCreators.js @@ -38,12 +38,6 @@ export function userLogout() { } } -export function isUserLoggedIn() { - return { - type: 'IS_USER_LOGGED_IN', - } -} - export function loginUser(username, password) { return request( 'USER_LOGIN', diff --git a/src/public/js/app.js b/src/public/js/app.js index 2583361..3c2dac6 100644 --- a/src/public/js/app.js +++ b/src/public/js/app.js @@ -44,21 +44,16 @@ import UserLoginForm from './components/users/login' import UserEdit from './components/users/edit' import UserSignUp from './components/users/signup' -class Main extends React.Component { - componentWillMount() { - this.props.isUserLoggedIn(); - } - render() { - return ( -
- - -
- {React.cloneElement(this.props.children, this.props)} -
+function Main(props) { + return ( +
+ + +
+ {React.cloneElement(props.children, props)}
- ); - } +
+ ); } function mapStateToProps(state) { @@ -79,8 +74,21 @@ const App = connect(mapStateToProps, mapDispatchToProps)(Main); const loginCheck = function(nextState, replace, next, f) { const state = store.getState(); const isLogged = state.userStore.isLogged; - if (!isLogged) { - replace('/users/login'); + let token = localStorage.getItem('token'); + + // Let's check if the user has a token, if he does let's assume he's logged + // in. If that's not the case he will be logged out on the fisrt query + if (token !== "") { + store.dispatch({ + type: 'USER_SET_TOKEN', + payload: { + token: token, + }, + }); + } + + if (!isLogged && token === "") { + replace('/users/login'); } else { f(); } diff --git a/src/public/js/reducers/users.js b/src/public/js/reducers/users.js index f909267..894982e 100644 --- a/src/public/js/reducers/users.js +++ b/src/public/js/reducers/users.js @@ -20,12 +20,8 @@ export default function userStore(state = defaultState, action) { return logoutUser(state) } return updateFromToken(state, action.payload.data.token) - case 'IS_USER_LOGGED_IN': - let localToken = localStorage.getItem('token'); - if (!localToken || localToken === "") { - return state; - } - return updateFromToken(state, localToken) + case 'USER_SET_TOKEN': + return updateFromToken(state, action.payload.token) case 'USER_LOGOUT': return logoutUser(state) case 'GET_USER_FULFILLED':