import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import "./index.css";
import { Routes } from "@/app/routes";
import { Provider } from "react-redux";
import store from "./app/store";
import { BrowserRouter } from "react-router";
import { Toaster } from "react-hot-toast";
import { AuthProvider } from "@/components/AuthContext";

async function enableMocking() {
  /*if (import.meta.env.PROD) {
    return;
  }*/

  if (import.meta.env.VITE_ENABLE_MOCKS === "true") {
    const { worker } = await import("@/mocks/browser");

    // `worker.start()` returns a Promise that resolves
    // once the Service Worker is up and ready to intercept requests.
    return worker.start();
  }
  return;
}

enableMocking().then(() => {
  createRoot(document.getElementById("root")!).render(
    <StrictMode>
      <Provider store={store}>
        <AuthProvider >
          <BrowserRouter>
            <Routes />
            <div>
              <Toaster position="bottom-left" reverseOrder={false} />
            </div>
          </BrowserRouter>
        </AuthProvider>
      </Provider>
    </StrictMode>,
  );
});
