Initial commit: base slice (auth, roles, users, admin) scaffold
Backend: .NET 10 Clean Architecture + LiteCqrs.Net + EF Core/PostgreSQL + Identity/JWT. Frontend: React 19 + Vite + TanStack Query/Router + Tailwind v4 with a retro CRT theme. Docker/compose deployment mirroring PnvPanel's conventions, scoped down to the current base feature set.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import { StrictMode } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
||||
import { RouterProvider } from '@tanstack/react-router'
|
||||
import './index.css'
|
||||
import './shared/lib/i18n'
|
||||
import { ThemeProvider } from './theme/ThemeProvider'
|
||||
import { ToastProvider } from './shared/ui/toast-store'
|
||||
import { Toaster } from './shared/ui/toaster'
|
||||
import { router } from './router'
|
||||
import { setUnauthorizedHandler } from './shared/api/client'
|
||||
import { clearSession } from './features/auth/api'
|
||||
|
||||
// Если refresh-токен недействителен (истёк/отозван) — очищаем стор авторизации, чтобы
|
||||
// useRequireAuth/useRequireAdmin увидели user === null и сами увели на /login.
|
||||
setUnauthorizedHandler(clearSession)
|
||||
|
||||
const queryClient = new QueryClient()
|
||||
|
||||
createRoot(document.getElementById('root')!).render(
|
||||
<StrictMode>
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<ThemeProvider>
|
||||
<ToastProvider>
|
||||
<RouterProvider router={router} />
|
||||
<Toaster />
|
||||
</ToastProvider>
|
||||
</ThemeProvider>
|
||||
</QueryClientProvider>
|
||||
</StrictMode>,
|
||||
)
|
||||
Reference in New Issue
Block a user