все к лучшему

This commit is contained in:
2025-07-22 08:34:05 +03:00
parent 3a1bb42aee
commit abc2ee44bd
9 changed files with 440 additions and 90 deletions

View File

@@ -1,8 +1,13 @@
import { FC } from 'react'
import { FC, useEffect } from 'react'
import { Navigate, Route, Routes } from 'react-router-dom'
import { TemplateProvider } from '@/entitiy/template/model/TemplateContext'
import {
setGlobalToastContext,
ToastProvider,
useToast,
} from '@/lib/hooks/useToast'
import { ElementsCreation } from '@/page/ElementsCreation'
import { ProtocolCreation } from '@/page/ProtocolCreation'
import { TemplateEditPage } from '@/page/TemplateEditPage'
@@ -11,29 +16,44 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { Layout } from './Layout'
const queryClient = new QueryClient()
// Компонент для инициализации глобального контекста toast
const ToastInitializer: FC = () => {
const toast = useToast()
useEffect(() => {
setGlobalToastContext(toast)
}, [toast])
return null
}
const App: FC = () => {
return (
<QueryClientProvider client={queryClient}>
<TemplateProvider>
<Routes>
<Route path="/" element={<Layout />}>
<Route index element={<Navigate to="/templates" replace />} />
<Route path="templates/" element={<TemplatesOverviewPage />} />
<Route
path="templates/:templateId/edit"
element={<TemplateEditPage />}
/>
<Route
path="templates/:templateId/elements"
element={<ElementsCreation />}
/>
<Route
path="templates/:templateId/protocols"
element={<ProtocolCreation />}
/>
</Route>
</Routes>
</TemplateProvider>
<ToastProvider>
<ToastInitializer />
<TemplateProvider>
<Routes>
<Route path="/" element={<Layout />}>
<Route index element={<Navigate to="/templates" replace />} />
<Route path="templates/" element={<TemplatesOverviewPage />} />
<Route
path="templates/:templateId/edit"
element={<TemplateEditPage />}
/>
<Route
path="templates/:templateId/elements"
element={<ElementsCreation />}
/>
<Route
path="templates/:templateId/protocols"
element={<ProtocolCreation />}
/>
</Route>
</Routes>
</TemplateProvider>
</ToastProvider>
</QueryClientProvider>
)
}