move BrowserRouter above AppProvider, wire onUnauthorized redirect to /login
This commit is contained in:
52
src/main.jsx
52
src/main.jsx
@@ -82,38 +82,46 @@ const routerMapping = [
|
|||||||
/** Reads authConfig from AppProvider context and passes it to AuthProvider. */
|
/** Reads authConfig from AppProvider context and passes it to AuthProvider. */
|
||||||
function AppContent() {
|
function AppContent() {
|
||||||
const { authConfig } = useAppContext();
|
const { authConfig } = useAppContext();
|
||||||
|
const navigate = useNavigate();
|
||||||
return (
|
return (
|
||||||
<AuthProvider authConfig={authConfig}>
|
<AuthProvider authConfig={authConfig}>
|
||||||
<BrowserRouter>
|
<AppTheme>
|
||||||
<AppTheme>
|
<CssBaseline enableColorScheme />
|
||||||
<CssBaseline enableColorScheme />
|
<Header routerMapping={routerMapping} />
|
||||||
<Header routerMapping={routerMapping} />
|
|
||||||
|
|
||||||
<Box sx={{ pb: 8 }}>
|
<Box sx={{ pb: 8 }}>
|
||||||
<Toolbar />
|
<Toolbar />
|
||||||
|
|
||||||
<Routes>
|
<Routes>
|
||||||
{routerMapping.map(({ path, component: Component }) => (
|
{routerMapping.map(({ path, component: Component }) => (
|
||||||
<Route
|
<Route
|
||||||
key={path}
|
key={path}
|
||||||
path={path}
|
path={path}
|
||||||
element={<Component basePath={path.replace(/\/\*$/, "")} />}
|
element={<Component basePath={path.replace(/\/\*$/, "")} />}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</Routes>
|
</Routes>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Footer />
|
<Footer />
|
||||||
</AppTheme>
|
</AppTheme>
|
||||||
</BrowserRouter>
|
|
||||||
</AuthProvider>
|
</AuthProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function AppWithAuth() {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
return (
|
||||||
|
<AppProvider specConfiguration={specConfiguration} onUnauthorized={() => navigate("/login")}>
|
||||||
|
<AppContent />
|
||||||
|
</AppProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
root.render(
|
root.render(
|
||||||
<QueryClientProvider client={queryClient}>
|
<QueryClientProvider client={queryClient}>
|
||||||
<AppProvider specConfiguration={specConfiguration}>
|
<BrowserRouter>
|
||||||
<AppContent />
|
<AppWithAuth />
|
||||||
</AppProvider>
|
</BrowserRouter>
|
||||||
</QueryClientProvider>
|
</QueryClientProvider>
|
||||||
);
|
);
|
||||||
Reference in New Issue
Block a user