import React from "react";
import ReactDOM from "react-dom/client";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { App } from "./App";
import { AuthProvider } from "./state/AuthContext";
import { ModalProvider } from "./components/modal/ModalProvider";
import { ToastProvider } from "./components/toast/ToastProvider";
import { ContextMenuProvider } from "./components/context-menu/ContextMenuProvider";
import "./styles/tokens.css";
import "./styles/app.css";

const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      staleTime: 30_000,
      refetchOnWindowFocus: false
    }
  }
});

ReactDOM.createRoot(document.getElementById("root")!).render(
  <React.StrictMode>
    <QueryClientProvider client={queryClient}>
      <ToastProvider>
        <ModalProvider>
          <ContextMenuProvider>
            <AuthProvider>
              <App />
            </AuthProvider>
          </ContextMenuProvider>
        </ModalProvider>
      </ToastProvider>
    </QueryClientProvider>
  </React.StrictMode>
);
