Skip to content

Commit ae52c7f

Browse files
Merge pull request #1212 from ral-facilities/nested-routes-for-admin-page-#1211
nested routes for admin page #1211
2 parents 9af938e + eedfab6 commit ae52c7f

11 files changed

+624
-287
lines changed

src/App.tsx

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
1+
import { LocalizationProvider } from '@mui/x-date-pickers';
2+
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3';
3+
import type { Router } from '@remix-run/router';
14
import {
25
QueryCache,
36
QueryClient,
47
QueryClientProvider,
58
} from '@tanstack/react-query';
6-
import React from 'react';
7-
// import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
8-
import { LocalizationProvider } from '@mui/x-date-pickers';
9-
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3';
10-
import type { Router } from '@remix-run/router';
9+
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
1110
import { AxiosError } from 'axios';
1211
import { enGB } from 'date-fns/locale/en-GB';
12+
import React from 'react';
1313
import {
1414
RouterProvider,
1515
createBrowserRouter,
1616
type RouteObject,
1717
} from 'react-router-dom';
18-
import AdminPage from './admin/admin.component';
18+
import AdminCardView from './admin/adminCardView.component';
19+
import AdminLayout, {
20+
AdminErrorComponent,
21+
} from './admin/adminLayout.component';
22+
import Units from './admin/units/units.component';
23+
import UsageStatuses from './admin/usageStatuses/usageStatuses.component';
1924
import {
2025
clearFailedAuthRequestsQueue,
2126
retryFailedAuthRequests,
@@ -49,7 +54,9 @@ import ViewTabs from './view/viewTabs.component';
4954
export const paths = {
5055
any: '*',
5156
root: '/',
52-
admin: '/admin-ims/*',
57+
admin: '/admin-ims',
58+
adminUnits: '/admin-ims/units',
59+
adminUsageStatuses: '/admin-ims/usage-statuses',
5360
homepage: '/ims',
5461
catalogue: '/catalogue/*',
5562
systems: '/systems/*',
@@ -85,7 +92,19 @@ const routeObject: RouteObject[] = [
8592
children: [
8693
{ path: paths.root, Component: HomePage },
8794
{ path: paths.homepage, Component: HomePage },
88-
{ path: paths.admin, Component: AdminPage },
95+
{
96+
path: paths.admin,
97+
Component: AdminLayout,
98+
children: [
99+
{ index: true, Component: AdminCardView },
100+
{ path: paths.adminUnits, Component: Units },
101+
{ path: paths.adminUsageStatuses, Component: UsageStatuses },
102+
{
103+
path: '*',
104+
Component: AdminErrorComponent,
105+
},
106+
],
107+
},
89108
{ path: paths.catalogue, Component: Catalogue },
90109
{
91110
path: paths.catalogueItem,
@@ -100,11 +119,14 @@ const routeObject: RouteObject[] = [
100119
{
101120
path: paths.manufacturers,
102121
Component: ManufacturerLayout,
103-
loader: manufacturerLayoutLoader(queryClient),
104122
ErrorBoundary: ManufacturerLayoutErrorComponent,
105123
children: [
106124
{ index: true, Component: ManufacturerTable },
107-
{ path: paths.manufacturer, Component: ManufacturerLandingPage },
125+
{
126+
path: paths.manufacturer,
127+
Component: ManufacturerLandingPage,
128+
loader: manufacturerLayoutLoader(queryClient),
129+
},
108130
{
109131
path: '*',
110132
Component: ManufacturerErrorComponent,
@@ -164,7 +186,7 @@ export function Layout() {
164186
}
165187
>
166188
<ViewTabs />
167-
{/* <ReactQueryDevtools initialIsOpen={false} /> */}
189+
<ReactQueryDevtools initialIsOpen={false} />
168190
</React.Suspense>
169191
</QueryClientProvider>
170192
</ConfigProvider>
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2+
3+
exports[`AdminCardView > renders admin card view correctly 1`] = `
4+
<DocumentFragment>
5+
<div
6+
class="MuiGrid-root MuiGrid-container css-11lq3yg-MuiGrid-root"
7+
>
8+
<div
9+
class="MuiGrid-root MuiGrid-container css-k6wrnl-MuiGrid-root"
10+
>
11+
<div
12+
class="MuiGrid-root MuiGrid-container MuiGrid-item MuiGrid-grid-xs-12 css-le9sc4-MuiGrid-root"
13+
>
14+
<div
15+
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-6 css-1b3l6lk-MuiGrid-root"
16+
>
17+
<a
18+
class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-colorPrimary MuiButton-fullWidth MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-colorPrimary MuiButton-fullWidth css-q760su-MuiButtonBase-root-MuiButton-root"
19+
href="/units"
20+
tabindex="0"
21+
>
22+
<div
23+
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation1 MuiCard-root css-siqlql-MuiPaper-root-MuiCard-root"
24+
>
25+
<div
26+
class="MuiCardContent-root css-lo1d59-MuiCardContent-root"
27+
>
28+
<div
29+
class="MuiGrid-root css-vj1n65-MuiGrid-root"
30+
>
31+
<div
32+
class="MuiGrid-root css-13qkvwv-MuiGrid-root"
33+
>
34+
<p
35+
class="MuiTypography-root MuiTypography-body1 css-ahj2mt-MuiTypography-root"
36+
>
37+
Units
38+
</p>
39+
</div>
40+
</div>
41+
</div>
42+
</div>
43+
<span
44+
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
45+
/>
46+
</a>
47+
</div>
48+
<div
49+
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-sm-6 css-1b3l6lk-MuiGrid-root"
50+
>
51+
<a
52+
class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-colorPrimary MuiButton-fullWidth MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-colorPrimary MuiButton-fullWidth css-q760su-MuiButtonBase-root-MuiButton-root"
53+
href="/usage-statuses"
54+
tabindex="0"
55+
>
56+
<div
57+
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation1 MuiCard-root css-siqlql-MuiPaper-root-MuiCard-root"
58+
>
59+
<div
60+
class="MuiCardContent-root css-lo1d59-MuiCardContent-root"
61+
>
62+
<div
63+
class="MuiGrid-root css-vj1n65-MuiGrid-root"
64+
>
65+
<div
66+
class="MuiGrid-root css-13qkvwv-MuiGrid-root"
67+
>
68+
<p
69+
class="MuiTypography-root MuiTypography-body1 css-ahj2mt-MuiTypography-root"
70+
>
71+
Usage Statuses
72+
</p>
73+
</div>
74+
</div>
75+
</div>
76+
</div>
77+
<span
78+
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
79+
/>
80+
</a>
81+
</div>
82+
</div>
83+
</div>
84+
</div>
85+
</DocumentFragment>
86+
`;

0 commit comments

Comments
 (0)