@@ -37,6 +37,9 @@ import ImportHome from '../imports/ImportHome'
3737import ConceptsComparison from '../concepts/ConceptsComparison'
3838import MappingsComparison from '../mappings/MappingsComparison'
3939import CheckAuth from './CheckAuth'
40+ import { loadUsageDashboard } from "../../common/loadRoutes" ;
41+
42+
4043
4144const AuthenticationRequiredRoute = ( { component : Component , ...rest } ) => (
4245 < Route
@@ -58,6 +61,13 @@ const SessionUserRoute = ({component: Component, ...rest}) => (
5861 />
5962)
6063
64+ const StaffUserRoute = ( { component : Component , ...rest } ) => (
65+ < Route
66+ { ...rest }
67+ render = { props => getCurrentUser ( ) ?. is_staff ? < Component { ...props } /> : < Error404 /> }
68+ />
69+ )
70+
6171const App = props => {
6272 const [ networkError , setNetworkError ] = React . useState ( false )
6373 const { alert, setAlert, setToggles } = React . useContext ( OperationsContext ) ;
@@ -115,6 +125,13 @@ const App = props => {
115125 setupHotJar ( )
116126 } , [ ] )
117127
128+ const [ UsageDashboard , setUsageDashboard ] = React . useState ( null ) ;
129+
130+ React . useEffect ( ( ) => {
131+ loadUsageDashboard ( ) . then ( setUsageDashboard ) ;
132+ } , [ ] ) ;
133+ console . log ( "UsageDashboard:" , UsageDashboard )
134+
118135
119136
120137 const repoTabs = [ 'concepts' , 'mappings' , 'versions' , 'summary' , 'about' , 'references' ]
@@ -136,6 +153,14 @@ const App = props => {
136153 < Route exact path = "/search" component = { Search } />
137154 < Route exact path = "/" component = { Dashboard } />
138155 < Route exact path = "/imports" component = { ImportHome } />
156+ {
157+ UsageDashboard &&
158+ < StaffUserRoute
159+ exact
160+ path = '/admin'
161+ component = { UsageDashboard }
162+ />
163+ }
139164 < AuthenticationRequiredRoute exact path = { `/:ownerType(users|orgs)/:owner/sources/:repo/:repoVersion/concepts/$match` } component = { RepoConceptsMatch } />
140165 < AuthenticationRequiredRoute exact path = { `/:ownerType(users|orgs)/:owner/repos/new/:step?` } component = { RepoCreate } />
141166 < AuthenticationRequiredRoute exact path = { `/:ownerType(users|orgs)/:owner/:repoType(sources|collections)/:repo/edit/:step?` } component = { RepoCreate } />
0 commit comments