56 lines
2.3 KiB
JavaScript
Raw Normal View History

import React from 'react';
import { Route, IndexRoute } from 'react-router';
2016-01-03 23:18:42 +02:00
import RootPage from 'pages/root/RootPage';
import IndexPage from 'pages/index/IndexPage';
import AuthPage from 'pages/auth/AuthPage';
2016-03-01 22:36:14 +02:00
import { authenticate } from 'components/user/actions';
2016-02-26 08:25:47 +02:00
2016-02-23 07:57:16 +02:00
import OAuthInit from 'components/auth/OAuthInit';
import Register from 'components/auth/register/Register';
import Login from 'components/auth/login/Login';
import Permissions from 'components/auth/permissions/Permissions';
import Activation from 'components/auth/activation/Activation';
import Password from 'components/auth/password/Password';
import Logout from 'components/auth/Logout';
import ChangePassword from 'components/auth/changePassword/ChangePassword';
import ForgotPassword from 'components/auth/forgotPassword/ForgotPassword';
import Finish from 'components/auth/finish/Finish';
2016-03-01 22:36:14 +02:00
import authFlow from 'services/authFlow';
2016-03-01 22:36:14 +02:00
export default function routesFactory(store) {
2016-02-26 08:25:47 +02:00
const state = store.getState();
if (state.user.token) {
// authorizing user if it is possible
store.dispatch(authenticate(state.user.token));
2016-02-26 08:25:47 +02:00
}
2016-03-01 22:36:14 +02:00
authFlow.setStore(store);
const onEnter = {
onEnter: ({location}, replace) => authFlow.handleRequest(location.pathname, replace)
};
return (
<Route path="/" component={RootPage}>
<IndexRoute component={IndexPage} {...onEnter} />
2016-03-01 22:36:14 +02:00
<Route path="oauth" component={OAuthInit} {...onEnter} />
<Route path="logout" component={Logout} {...onEnter} />
<Route path="auth" component={AuthPage}>
2016-03-01 22:36:14 +02:00
<Route path="/login" components={new Login()} {...onEnter} />
<Route path="/password" components={new Password()} {...onEnter} />
<Route path="/register" components={new Register()} {...onEnter} />
<Route path="/activation" components={new Activation()} {...onEnter} />
<Route path="/oauth/permissions" components={new Permissions()} {...onEnter} />
<Route path="/oauth/finish" component={Finish} {...onEnter} />
<Route path="/change-password" components={new ChangePassword()} {...onEnter} />
2016-03-01 22:36:14 +02:00
<Route path="/forgot-password" components={new ForgotPassword()} {...onEnter} />
</Route>
</Route>
);
}