import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { BrowserRouter } from "react-router-dom";
import { HelmetProvider } from "react-helmet-async";
import App from "./App.jsx";
import { ErrorBoundary } from "./components/ErrorBoundary.jsx";
import { SEOProvider } from "./context/SEOContext.jsx";
import { HelmetRenderer } from "./components/HelmetRenderer.jsx";
import "./styles/style.css";

// Global error logging for async errors
window.addEventListener("error", (e) => {
  console.error("🔴 Global error:", e.error || e.message);
});
window.addEventListener("unhandledrejection", (e) => {
  console.error("🔴 Unhandled promise rejection:", e.reason);
});

createRoot(document.getElementById("root")).render(
  <StrictMode>
    <HelmetProvider>
      <SEOProvider>
        <BrowserRouter>
          <ErrorBoundary>
            <App />
          </ErrorBoundary>
        </BrowserRouter>
      </SEOProvider>
    </HelmetProvider>
  </StrictMode>
);
