decompose structure
This commit is contained in:
5
src/app/App.tsx
Normal file
5
src/app/App.tsx
Normal file
@@ -0,0 +1,5 @@
|
||||
import { AppRouter } from './router';
|
||||
|
||||
export default function App() {
|
||||
return <AppRouter />;
|
||||
}
|
||||
21
src/app/providers.tsx
Normal file
21
src/app/providers.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
||||
import type { PropsWithChildren } from 'react';
|
||||
import { AuthProvider } from '../auth/AuthProvider';
|
||||
|
||||
const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
staleTime: 1_000,
|
||||
retry: 1,
|
||||
refetchOnWindowFocus: false,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export function AppProviders({ children }: PropsWithChildren) {
|
||||
return (
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<AuthProvider>{children}</AuthProvider>
|
||||
</QueryClientProvider>
|
||||
);
|
||||
}
|
||||
32
src/app/router.tsx
Normal file
32
src/app/router.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
import { BrowserRouter, Navigate, Route, Routes, useNavigate } from 'react-router-dom';
|
||||
import { EdgeDetailPage } from '../features/edge-detail/EdgeDetailPage';
|
||||
import { EdgesDashboard } from '../features/edges-dashboard/EdgesDashboard';
|
||||
|
||||
function DashboardRoute() {
|
||||
const navigate = useNavigate();
|
||||
|
||||
return (
|
||||
<EdgesDashboard
|
||||
onOpenEdge={(edgeId) => navigate(`/edges/${encodeURIComponent(edgeId)}`)}
|
||||
onOpenEquipment={(edgeId) => navigate(`/edges/${encodeURIComponent(edgeId)}/equipment`)}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export function AppRouter() {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<Routes>
|
||||
<Route path="/" element={<Navigate to="/edges" replace />} />
|
||||
<Route path="/edges" element={<DashboardRoute />} />
|
||||
<Route path="/edges/:edgeId" element={<EdgeDetailPage view="overview" />} />
|
||||
<Route path="/edges/:edgeId/archive" element={<EdgeDetailPage view="archive" />} />
|
||||
<Route path="/edges/:edgeId/indicators" element={<EdgeDetailPage view="indicators" />} />
|
||||
<Route path="/edges/:edgeId/equipment" element={<EdgeDetailPage view="equipment" />} />
|
||||
{/* Электросхемы временно скрыты до готовности опубликованных схем и diagram-service. */}
|
||||
{/* <Route path="/edges/:edgeId/electrical" element={<EdgeDetailPage view="electrical" />} /> */}
|
||||
<Route path="*" element={<Navigate to="/edges" replace />} />
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user