import React, { StrictMode, Suspense } from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter as Router } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { Provider } from 'react-redux';
import { store } from './store/store';

import './i18n';
import HomeLoader from '@components/LoaderPages/HomeLoader';
const queryClient = new QueryClient();
const AppWrapper = React.lazy(() => import('./AppWrapper'));

const rootElement = document.getElementById('root');
const root = ReactDOM.createRoot(rootElement);

root.render(
  <StrictMode>
    <Router>
      <QueryClientProvider client={queryClient}>
        <Provider store={store}>
          <Suspense fallback={<HomeLoader />}>
            <AppWrapper />
          </Suspense>
        </Provider>
      </QueryClientProvider>
    </Router>
  </StrictMode>
);
