import { store } from "app/store";
import React from "react";
import { createRoot } from "react-dom/client";
import { I18nextProvider } from "react-i18next";
import { Provider } from "react-redux";
import { PublicClientApplication } from "@azure/msal-browser";
import { msalConfig } from "common/msalConfig";
import { MsalProvider } from "@azure/msal-react";
import App from "./App";
import * as serviceWorker from "./serviceWorker";
import i18n from "./i18n";

const pca = new PublicClientApplication(msalConfig);

const container = document.getElementById("root");
if (container) {
  const root = createRoot(container);
  root.render(
    <React.StrictMode>
      <Provider store={store}>
        <MsalProvider instance={pca}>
          <I18nextProvider i18n={i18n} />
          <App />
        </MsalProvider>
      </Provider>
    </React.StrictMode>
  );
}

// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();
