aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes.tsx
blob: b8f649740fbf657da2c96cee9da1c1d0a9dcb3ba (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import { Component } from 'react';
import { inject, observer } from 'mobx-react';
import { Router, Route, IndexRedirect } from 'react-router';

import AppLayoutContainer from './containers/layout/AppLayoutContainer';
import SettingsWindow from './containers/settings/SettingsWindow';
import RecipesScreen from './containers/settings/RecipesScreen';
import ServicesScreen from './containers/settings/ServicesScreen';
import EditServiceScreen from './containers/settings/EditServiceScreen';
import AccountScreen from './containers/settings/AccountScreen';
import TeamScreen from './containers/settings/TeamScreen';
import EditUserScreen from './containers/settings/EditUserScreen';
import EditSettingsScreen from './containers/settings/EditSettingsScreen';
import InviteSettingsScreen from './containers/settings/InviteScreen';
import SupportFerdiumScreen from './containers/settings/SupportScreen';
import WelcomeScreen from './containers/auth/WelcomeScreen';
import LoginScreen from './containers/auth/LoginScreen';
import PasswordScreen from './containers/auth/PasswordScreen';
import ChangeServerScreen from './containers/auth/ChangeServerScreen';
import SignupScreen from './containers/auth/SignupScreen';
import ImportScreen from './containers/auth/ImportScreen';
import SetupAssistentScreen from './containers/auth/SetupAssistantScreen';
import InviteScreen from './containers/auth/InviteScreen';
import AuthLayoutContainer from './containers/auth/AuthLayoutContainer';
import WorkspacesScreen from './features/workspaces/containers/WorkspacesScreen';
import EditWorkspaceScreen from './features/workspaces/containers/EditWorkspaceScreen';
import { WORKSPACES_ROUTES } from './features/workspaces/constants';

type Props = {
  history: any;
};

class Routes extends Component<Props> {
  render() {

    const { history } = this.props;

    return (
      <Router history={history}>
        <Route path="/" component={AppLayoutContainer}>
          <Route path="/settings" component={SettingsWindow}>
            <IndexRedirect to="/settings/recipes" />
            <Route path="/settings/recipes" component={RecipesScreen} />
            <Route path="/settings/recipes/:filter" component={RecipesScreen} />
            <Route path="/settings/services" component={ServicesScreen} />
            <Route
              path="/settings/services/:action/:id"
              component={EditServiceScreen}
            />
            <Route path={WORKSPACES_ROUTES.ROOT} component={WorkspacesScreen} />
            <Route
              path={WORKSPACES_ROUTES.EDIT}
              component={EditWorkspaceScreen}
            />
            <Route path="/settings/user" component={AccountScreen} />
            <Route path="/settings/user/edit" component={EditUserScreen} />
            <Route path="/settings/team" component={TeamScreen} />
            <Route path="/settings/app" component={EditSettingsScreen} />
            <Route path="/settings/invite" component={InviteSettingsScreen} />
            <Route path="/settings/support" component={SupportFerdiumScreen} />
          </Route>
        </Route>
        <Route path="/auth" component={AuthLayoutContainer}>
          <IndexRedirect to="/auth/welcome" />
          <Route path="/auth/welcome" component={WelcomeScreen} />
          <Route path="/auth/login" component={LoginScreen} />
          <Route path="/auth/server" component={ChangeServerScreen} />
          <Route path="/auth/signup">
            <IndexRedirect to="/auth/signup/form" />
            <Route path="/auth/signup/form" component={SignupScreen} />
            <Route path="/auth/signup/import" component={ImportScreen} />
            <Route path="/auth/signup/setup" component={SetupAssistentScreen} />
            <Route path="/auth/signup/invite" component={InviteScreen} />
          </Route>
          <Route path="/auth/password" component={PasswordScreen} />
          <Route path="/auth/logout" component={LoginScreen} />
        </Route>
        <Route path="*" component={AppLayoutContainer} />
      </Router>
    );
  }
}

export default inject('stores', 'actions')(observer(Routes));