import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { BrowserRouter } from 'react-router-dom'
import { EffectiveLangProvider } from './context/EffectiveLangContext'
import { LanguageProvider } from './context/LanguageContext'
import { SiteProvider } from './context/SiteContext'
import { ThemeProvider } from './context/ThemeContext'
import { CurrencyProvider } from './context/CurrencyContext'
import { AuthProvider } from './context/AuthContext'
import { StripeProvider } from './context/StripeContext'
import { ErrorBoundary } from './components/ErrorBoundary'
import './index.css'
import App from './App.jsx'

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <ErrorBoundary>
      <BrowserRouter>
        <EffectiveLangProvider>
        <LanguageProvider>
          <SiteProvider>
          <ThemeProvider>
          <CurrencyProvider>
          <StripeProvider>
            <AuthProvider>
              <App />
            </AuthProvider>
          </StripeProvider>
          </CurrencyProvider>
          </ThemeProvider>
          </SiteProvider>
        </LanguageProvider>
        </EffectiveLangProvider>
      </BrowserRouter>
    </ErrorBoundary>
  </StrictMode>,
)