1- import React , { useContext , useEffect , useMemo } from 'react' ;
1+ import React , { useContext , useEffect } from 'react' ;
22import {
3- createBrowserRouter , RouteObject , RouterProvider
3+ BrowserRouter
44} from 'react-router' ;
55import { Amplify } from 'aws-amplify' ;
66import { ClassPrefix } from '@carbon/react' ;
@@ -11,19 +11,11 @@ import awsconfig from './aws-exports';
1111import prefix from './styles/classPrefix' ;
1212import './styles/custom.scss' ;
1313import 'react-toastify/dist/ReactToastify.css' ;
14-
15- import Layout from './layout/PrivateLayout' ;
16- import Landing from './views/Landing' ;
17- import FourOhFour from './views/ErrorViews/FourOhFour' ;
18- import LoginOrgSelection from './views/LoginOrgSelection' ;
19- import ServiceStatus from './views/ServiceStatus' ;
2014import { NavigateProvider } from './contexts/NavigationContext' ;
2115import AuthContext from './contexts/AuthContext' ;
22- import BrowserRoutes from './routes' ;
23- import ROUTES from './routes/constants' ;
24- import ProtectedRoute from './routes/ProtectedRoute' ;
2516import { ThemePreference } from './utils/ThemePreference' ;
2617import CustomQueryProvider from './components/CustomQueryProvider' ;
18+ import AppRoutes from './AppRoutes' ;
2719
2820Amplify . configure ( awsconfig ) ;
2921
@@ -33,82 +25,25 @@ Amplify.configure(awsconfig);
3325 * @returns {JSX.Element } instance of the app ready to use.
3426 */
3527const App : React . FC = ( ) => {
36- const { signed , isCurrentAuthUser, selectedClientRoles } = useContext ( AuthContext ) ;
28+ const { isCurrentAuthUser } = useContext ( AuthContext ) ;
3729
3830 useEffect ( ( ) => {
3931 isCurrentAuthUser ( window . location . pathname ) ;
4032 } , [ ] ) ;
4133
42- const roleSelectionRoutes : RouteObject [ ] = [
43- {
44- path : ROUTES . ALL_ROUTES ,
45- element : < LoginOrgSelection />
46- }
47- ] ;
48-
49- const signedRoutes : RouteObject [ ] = [
50- {
51- path : ROUTES . ROOT ,
52- element : < ProtectedRoute /> ,
53- children : [
54- {
55- element : < Layout /> ,
56- children : BrowserRoutes
57- }
58- ]
59- } ,
60- {
61- path : ROUTES . FOUR_OH_FOUR ,
62- element : < FourOhFour />
63- } ,
64- {
65- path : ROUTES . ALL_ROUTES ,
66- element : < FourOhFour />
67- }
68- ] ;
69-
70- const notSignedRoutes : RouteObject [ ] = [
71- {
72- path : ROUTES . ALL_ROUTES ,
73- element : < Landing />
74- }
75- ] ;
76-
77- const sharedRoutes : RouteObject [ ] = [
78- {
79- path : ROUTES . SERVICE_STATUS ,
80- element : < ServiceStatus />
81- }
82- ] ;
83-
84- const browserRouter = useMemo ( ( ) => {
85- const selectBrowserRoutes = ( ) => {
86- if ( ! signed ) {
87- return notSignedRoutes ;
88- }
89- if ( selectedClientRoles ) {
90- return signedRoutes ;
91- }
92- return roleSelectionRoutes ;
93- } ;
94-
95- const selectedRoutes = selectBrowserRoutes ( ) ;
96- selectedRoutes . push ( ...sharedRoutes ) ;
97-
98- return createBrowserRouter ( selectedRoutes ) ;
99- } , [ signed , selectedClientRoles ] ) ;
100-
101- const handleRedirectTo403 = ( ) => {
102- browserRouter . navigate ( '/403' ) ;
103- } ;
104-
10534 return (
10635 < ClassPrefix prefix = { prefix } >
10736 < ThemePreference >
108- < NavigateProvider onRedirect = { handleRedirectTo403 } >
37+ < NavigateProvider onRedirect = { ( ) => {
38+ // go to 403 page
39+ window . location . href = '/403' ;
40+ } }
41+ >
10942 < CustomQueryProvider >
11043 < ToastContainer />
111- < RouterProvider router = { browserRouter } />
44+ < BrowserRouter >
45+ < AppRoutes />
46+ </ BrowserRouter >
11247 < ReactQueryDevtools initialIsOpen = { false } />
11348 </ CustomQueryProvider >
11449 </ NavigateProvider >
0 commit comments