import { StrictMode } from 'react';
import { hydrateRoot, createRoot } from 'react-dom/client';
import { BrowserRouter } from 'react-router';
import { HelmetProvider } from 'react-helmet-async';
import { SSRDataProvider } from './lib/ssrContext';
import App from './App.tsx';

// Read SSR data injected by server
const ssrData = (window as any).__SSR_DATA__;
console.log('[CLIENT] Hydrating with SSR data:', !!ssrData);

const rootElement = document.getElementById('root')!;

const app = (
  <StrictMode>
    <HelmetProvider>
      <SSRDataProvider ssrData={ssrData}>
        <BrowserRouter>
          <App />
        </BrowserRouter>
      </SSRDataProvider>
    </HelmetProvider>
  </StrictMode>
);

if (rootElement.innerHTML.trim().length > 0) {
  hydrateRoot(rootElement, app);
} else {
  createRoot(rootElement).render(app);
}
