import { addLogging } from "./lib/logging";
import { createRoot } from "react-dom/client";
import { RouterProvider, createRouter } from "@tanstack/react-router";
import { MantineProvider } from "@mantine/core";
import { QueryClientProvider } from "@tanstack/react-query";
import { AuthProvider, baseTheme } from "@managed-client/web-shared";
import { queryClient } from "./lib/queryClient";
import { routeTree } from "./routeTree.gen";
import "@mantine/core/styles.css";
import { API_ACCESS_SCOPE, msalInstance } from "./lib/msalInstance";
const authLogger = addLogging("Auth");

const router = createRouter({ routeTree });

declare module "@tanstack/react-router" {
  interface Register {
    router: typeof router;
  }
}

createRoot(document.getElementById("root")!).render(
  <AuthProvider instance={msalInstance} tokenScope={API_ACCESS_SCOPE} logger={authLogger}>
    <MantineProvider theme={baseTheme} defaultColorScheme="dark">
      <QueryClientProvider client={queryClient}>
        <RouterProvider router={router} />
      </QueryClientProvider>
    </MantineProvider>
  </AuthProvider>,
);
