forked from StateVoicesNational/Spoke
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroutes.jsx
118 lines (117 loc) · 5.03 KB
/
routes.jsx
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import { IndexRoute, IndexRedirect, Route } from 'react-router'
import App from './components/App'
import AdminDashboard from './components/AdminDashboard'
import AdminCampaignList from './containers/AdminCampaignList'
import AdminCampaignStats from './containers/AdminCampaignStats'
import AdminPersonList from './containers/AdminPersonList'
import AdminOptOutList from './containers/AdminOptOutList'
import AdminIncomingMessageList from './containers/AdminIncomingMessageList'
import AdminCampaignEdit from './containers/AdminCampaignEdit'
import AdminReplySender from './containers/AdminReplySender'
import TexterDashboard from './components/TexterDashboard'
import TopNav from './components/TopNav'
import DashboardLoader from './containers/DashboardLoader'
import TexterTodoList from './containers/TexterTodoList'
import TexterTodo from './containers/TexterTodo'
import Login from './components/Login'
import Terms from './containers/Terms'
import React from 'react'
import CreateOrganization from './containers/CreateOrganization'
import JoinTeam from './containers/JoinTeam'
import Home from './containers/Home'
import Settings from './containers/Settings'
import UserEdit from './containers/UserEdit'
import TexterFaqs from './components/TexterFaqs'
import FAQs from './lib/faqs'
export default function makeRoutes(requireAuth = () => { }) {
return (
<Route path='/' component={App}>
<IndexRoute component={Home} />
<Route path='admin' component={AdminDashboard} onEnter={requireAuth}>
<IndexRoute component={() => <DashboardLoader path='/admin' />} />
<Route path=':organizationId'>
<IndexRedirect to='campaigns' />
<Route path='campaigns'>
<IndexRoute component={AdminCampaignList} />
<Route path=':campaignId'>
<IndexRoute component={AdminCampaignStats} />
<Route path='edit' component={AdminCampaignEdit} />
<Route path='send-replies' component={AdminReplySender} />
</Route>
</Route>
<Route path='people' component={AdminPersonList} />
<Route path='optouts' component={AdminOptOutList} />
<Route path='incoming' component={AdminIncomingMessageList} />
<Route path='settings' component={Settings} />
</Route>
</Route>
<Route path='app' component={TexterDashboard} onEnter={requireAuth}>
<IndexRoute components={{
main: () => <DashboardLoader path='/app' />,
topNav: (p) => <TopNav title='Spoke Texting' orgId={p.params.organizationId} />
}} />
<Route path=':organizationId'>
<IndexRedirect to='todos' />
<Route path='faqs' components={{
main: () => <TexterFaqs faqs={FAQs} />,
topNav: (p) => <TopNav title='Account' orgId={p.params.organizationId} />
}} />
<Route path='account/:userId' components={{
main: (p) => <UserEdit userId={p.params.userId} organizationId={p.params.organizationId} />,
topNav: (p) => <TopNav title='Account' orgId={p.params.organizationId} />
}} />
<Route path='todos'>
<IndexRoute
components={{
main: TexterTodoList,
topNav: (p) => <TopNav title='Spoke Texting' orgId={p.params.organizationId} />
}}
/>
<Route path=':assignmentId'>
<Route
path='text'
components={{
fullScreen: (props) => <TexterTodo {...props} messageStatus='needsMessage' />
}}
/>
<Route
path='reply'
components={{
fullScreen: (props) => <TexterTodo {...props} messageStatus='needsResponse' />,
topNav: null
}}
/>
<Route
path='stale'
components={{
fullScreen: (props) => <TexterTodo {...props} messageStatus='convo' />,
topNav: null
}}
/>
<Route
path='skipped'
components={{
fullScreen: (props) => <TexterTodo {...props} messageStatus='closed' />,
topNav: null
}}
/>
<Route
path='all'
components={{
fullScreen: (props) => <TexterTodo {...props} messageStatus='needsMessageOrResponse' />,
topNav: null
}}
/>
</Route>
</Route>
</Route>
</Route>
<Route path='login' component={Login} />
<Route path='terms' component={Terms} />
<Route path='reset/:resetHash' component={Home} onEnter={requireAuth} />
<Route path='invite/:inviteId' component={CreateOrganization} onEnter={requireAuth} />
<Route path=':organizationUuid/join/:campaignId' component={JoinTeam} onEnter={requireAuth} />
<Route path=':organizationUuid/join' component={JoinTeam} onEnter={requireAuth} />
</Route>
)
}