import { createRoot } from 'react-dom/client';
import { PublicClientApplication } from '@azure/msal-browser';
import { MsalProvider } from '@azure/msal-react';
import { msalConfig } from './config/msalConfig';
import App from './App';
import './index.css';

const msalInstance = new PublicClientApplication(msalConfig);

function renderApp(instance: PublicClientApplication) {
  createRoot(document.getElementById('root')!).render(
    <MsalProvider instance={instance}>
      <App />
    </MsalProvider>
  );
}

msalInstance.initialize()
  .then(() => renderApp(msalInstance))
  .catch(() => {
    // MSAL failed to initialize (e.g. placeholder credentials) — still render
    // the app so the demo mode button remains accessible.
    renderApp(msalInstance);
  });
