import { RouterProvider } from 'react-router-dom'
import { StrictMode } from 'react'
import ReactDOM from 'react-dom/client'
import './index.css'
import { router } from './router'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { AlertProvider } from '@/contexts/alert-context'
import { ResponseDialog } from '@/components/response-dialog'
import { ThemeProvider } from './contexts/theme-provider'

const queryClient = new QueryClient()

// biome-ignore lint/style/noNonNullAssertion: mandatory by react-dom
const rootElement = document.getElementById('root')!
if (!rootElement.innerHTML) {
  const root = ReactDOM.createRoot(rootElement)
  root.render(
    <StrictMode>
      <QueryClientProvider client={queryClient}>
        <ThemeProvider defaultTheme="system" storageKey="@kaspersky-admin:ui-theme">
          <AlertProvider>
          <RouterProvider router={router} />
          <ResponseDialog />
        </AlertProvider>
        </ThemeProvider>
      </QueryClientProvider>
    </StrictMode>
  )
}
