|
1 | 1 | import { memo, useCallback, useEffect, useState } from 'react'; |
2 | 2 | import { I18nextProvider } from 'react-i18next'; |
3 | 3 | import { |
4 | | - BrowserRouter, |
| 4 | + createBrowserRouter, |
| 5 | + createRoutesFromElements, |
| 6 | + Outlet, |
5 | 7 | Route, |
| 8 | + RouterProvider, |
6 | 9 | Routes, |
7 | 10 | useParams, |
8 | 11 | useNavigate, |
@@ -99,38 +102,18 @@ export const AppLoading = () => ( |
99 | 102 | </div> |
100 | 103 | ); |
101 | 104 |
|
| 105 | +const AppLayout = () => ( |
| 106 | + <AuthProvider> |
| 107 | + <Outlet /> |
| 108 | + </AuthProvider> |
| 109 | +); |
| 110 | + |
102 | 111 | function App() { |
103 | 112 | return ( |
104 | 113 | <I18nextProvider i18n={i18n}> |
105 | 114 | <QueryClientProvider client={queryClient}> |
106 | 115 | <ConfirmProvider> |
107 | | - <BrowserRouter> |
108 | | - <AuthProvider> |
109 | | - <Routes> |
110 | | - <Route |
111 | | - path={PAGE_PATH_AUTH_CALLBACK} |
112 | | - element={<AuthCallbackPage />} |
113 | | - /> |
114 | | - <Route |
115 | | - path={PAGE_PATH_AUTH_DEMO_CALLBACK} |
116 | | - element={<AuthDemoCallbackPage />} |
117 | | - /> |
118 | | - <Route |
119 | | - path={PAGE_PATH_AUTH_SIGNIN} |
120 | | - element={<SignInEmailPage />} |
121 | | - /> |
122 | | - <Route |
123 | | - path={PAGE_PATH_DEMO_SITE} |
124 | | - element={<AccessDemoPage />} |
125 | | - /> |
126 | | - <Route |
127 | | - path={`${PAGE_PATH_DEMO_SITE}/new`} |
128 | | - element={<CreateDemoPage />} |
129 | | - /> |
130 | | - <Route path={`${PAGE_PATH_ROOT}*`} element={<Root />} /> |
131 | | - </Routes> |
132 | | - </AuthProvider> |
133 | | - </BrowserRouter> |
| 116 | + <RouterProvider router={router} /> |
134 | 117 | </ConfirmProvider> |
135 | 118 | {/* {process.env.NODE_ENV === 'development' && ( |
136 | 119 | <ReactQueryDevtools initialIsOpen={false} /> |
@@ -321,4 +304,20 @@ export const EnvironmentRoot = memo( |
321 | 304 | } |
322 | 305 | ); |
323 | 306 |
|
| 307 | +const router = createBrowserRouter( |
| 308 | + createRoutesFromElements( |
| 309 | + <Route element={<AppLayout />}> |
| 310 | + <Route path={PAGE_PATH_AUTH_CALLBACK} element={<AuthCallbackPage />} /> |
| 311 | + <Route |
| 312 | + path={PAGE_PATH_AUTH_DEMO_CALLBACK} |
| 313 | + element={<AuthDemoCallbackPage />} |
| 314 | + /> |
| 315 | + <Route path={PAGE_PATH_AUTH_SIGNIN} element={<SignInEmailPage />} /> |
| 316 | + <Route path={PAGE_PATH_DEMO_SITE} element={<AccessDemoPage />} /> |
| 317 | + <Route path={`${PAGE_PATH_DEMO_SITE}/new`} element={<CreateDemoPage />} /> |
| 318 | + <Route path={`${PAGE_PATH_ROOT}*`} element={<Root />} /> |
| 319 | + </Route> |
| 320 | + ) |
| 321 | +); |
| 322 | + |
324 | 323 | export default App; |
0 commit comments