diff options
author | Bennett <hello@vantezzen.io> | 2020-05-01 12:49:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-01 12:49:22 +0200 |
commit | b479acc0a7d2aa06d8adc7a030691447a36e9cfb (patch) | |
tree | 9bdc5a9420fc38920b402bb7c8a78d5db0bca6dc /src/routes.js | |
parent | Restore delete service in sidebar (#692) (diff) | |
download | ferdium-app-b479acc0a7d2aa06d8adc7a030691447a36e9cfb.tar.gz ferdium-app-b479acc0a7d2aa06d8adc7a030691447a36e9cfb.tar.zst ferdium-app-b479acc0a7d2aa06d8adc7a030691447a36e9cfb.zip |
Refactor locking feature (#693)
Diffstat (limited to 'src/routes.js')
-rw-r--r-- | src/routes.js | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/src/routes.js b/src/routes.js new file mode 100644 index 000000000..9986cdde5 --- /dev/null +++ b/src/routes.js | |||
@@ -0,0 +1,100 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { inject, observer } from 'mobx-react'; | ||
4 | import { | ||
5 | Router, Route, IndexRedirect, | ||
6 | } from 'react-router'; | ||
7 | |||
8 | import AppLayoutContainer from './containers/layout/AppLayoutContainer'; | ||
9 | import SettingsWindow from './containers/settings/SettingsWindow'; | ||
10 | import RecipesScreen from './containers/settings/RecipesScreen'; | ||
11 | import ServicesScreen from './containers/settings/ServicesScreen'; | ||
12 | import EditServiceScreen from './containers/settings/EditServiceScreen'; | ||
13 | import AccountScreen from './containers/settings/AccountScreen'; | ||
14 | import TeamScreen from './containers/settings/TeamScreen'; | ||
15 | import EditUserScreen from './containers/settings/EditUserScreen'; | ||
16 | import EditSettingsScreen from './containers/settings/EditSettingsScreen'; | ||
17 | import InviteSettingsScreen from './containers/settings/InviteScreen'; | ||
18 | import SupportFerdiScreen from './containers/settings/SupportScreen'; | ||
19 | import WelcomeScreen from './containers/auth/WelcomeScreen'; | ||
20 | import LoginScreen from './containers/auth/LoginScreen'; | ||
21 | import LockedScreen from './containers/auth/LockedScreen'; | ||
22 | import PasswordScreen from './containers/auth/PasswordScreen'; | ||
23 | import ChangeServerScreen from './containers/auth/ChangeServerScreen'; | ||
24 | import SignupScreen from './containers/auth/SignupScreen'; | ||
25 | import ImportScreen from './containers/auth/ImportScreen'; | ||
26 | import PricingScreen from './containers/auth/PricingScreen'; | ||
27 | import InviteScreen from './containers/auth/InviteScreen'; | ||
28 | import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; | ||
29 | import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopupScreen'; | ||
30 | import WorkspacesScreen from './features/workspaces/containers/WorkspacesScreen'; | ||
31 | import EditWorkspaceScreen from './features/workspaces/containers/EditWorkspaceScreen'; | ||
32 | import { WORKSPACES_ROUTES } from './features/workspaces'; | ||
33 | import AnnouncementScreen from './features/announcements/components/AnnouncementScreen'; | ||
34 | import { ANNOUNCEMENTS_ROUTES } from './features/announcements'; | ||
35 | |||
36 | import SettingsStore from './stores/SettingsStore'; | ||
37 | |||
38 | export default @inject('stores', 'actions') @observer class Routes extends Component { | ||
39 | render() { | ||
40 | const { | ||
41 | locked, | ||
42 | lockingFeatureEnabled, | ||
43 | } = this.props.stores.settings.app; | ||
44 | |||
45 | const { history } = this.props; | ||
46 | |||
47 | if (lockingFeatureEnabled && locked) { | ||
48 | return ( | ||
49 | <LockedScreen /> | ||
50 | ); | ||
51 | } | ||
52 | |||
53 | return ( | ||
54 | <Router history={history}> | ||
55 | <Route path="/" component={AppLayoutContainer}> | ||
56 | <Route path={ANNOUNCEMENTS_ROUTES.TARGET} component={AnnouncementScreen} /> | ||
57 | <Route path="/settings" component={SettingsWindow}> | ||
58 | <IndexRedirect to="/settings/recipes" /> | ||
59 | <Route path="/settings/recipes" component={RecipesScreen} /> | ||
60 | <Route path="/settings/recipes/:filter" component={RecipesScreen} /> | ||
61 | <Route path="/settings/services" component={ServicesScreen} /> | ||
62 | <Route path="/settings/services/:action/:id" component={EditServiceScreen} /> | ||
63 | <Route path={WORKSPACES_ROUTES.ROOT} component={WorkspacesScreen} /> | ||
64 | <Route path={WORKSPACES_ROUTES.EDIT} component={EditWorkspaceScreen} /> | ||
65 | <Route path="/settings/user" component={AccountScreen} /> | ||
66 | <Route path="/settings/user/edit" component={EditUserScreen} /> | ||
67 | <Route path="/settings/team" component={TeamScreen} /> | ||
68 | <Route path="/settings/app" component={EditSettingsScreen} /> | ||
69 | <Route path="/settings/invite" component={InviteSettingsScreen} /> | ||
70 | <Route path="/settings/support" component={SupportFerdiScreen} /> | ||
71 | </Route> | ||
72 | </Route> | ||
73 | <Route path="/auth" component={AuthLayoutContainer}> | ||
74 | <IndexRedirect to="/auth/welcome" /> | ||
75 | <Route path="/auth/welcome" component={WelcomeScreen} /> | ||
76 | <Route path="/auth/login" component={LoginScreen} /> | ||
77 | <Route path="/auth/server" component={ChangeServerScreen} /> | ||
78 | <Route path="/auth/signup"> | ||
79 | <IndexRedirect to="/auth/signup/form" /> | ||
80 | <Route path="/auth/signup/form" component={SignupScreen} /> | ||
81 | <Route path="/auth/signup/pricing" component={PricingScreen} /> | ||
82 | <Route path="/auth/signup/import" component={ImportScreen} /> | ||
83 | <Route path="/auth/signup/invite" component={InviteScreen} /> | ||
84 | </Route> | ||
85 | <Route path="/auth/password" component={PasswordScreen} /> | ||
86 | <Route path="/auth/logout" component={LoginScreen} /> | ||
87 | </Route> | ||
88 | <Route path="/payment/:url" component={SubscriptionPopupScreen} /> | ||
89 | <Route path="*" component={AppLayoutContainer} /> | ||
90 | </Router> | ||
91 | ); | ||
92 | } | ||
93 | } | ||
94 | |||
95 | Routes.wrappedComponent.propTypes = { | ||
96 | stores: PropTypes.shape({ | ||
97 | settings: PropTypes.instanceOf(SettingsStore).isRequired, | ||
98 | }).isRequired, | ||
99 | history: PropTypes.any.isRequired, | ||
100 | }; | ||