import React from 'react';
import ReactDOM from 'react-dom/client';
import { hydrateRoot, createRoot } from 'react-dom/client';
import App from '@/App';
import '@/index.css';

// Fonction pour déterminer si on doit hydrater ou rendre
function renderApp() {
  const container = document.getElementById('root');
  
  // Si le container a déjà du contenu (pré-rendu), on hydrate
  if (container.hasChildNodes()) {
    hydrateRoot(container, 
      <React.StrictMode>
        <App />
      </React.StrictMode>
    );
  } else {
    // Sinon on fait un rendu normal (mode dev)
    createRoot(container).render(
      <React.StrictMode>
        <App />
      </React.StrictMode>
    );
  }
}

// Vérifier qu'on est côté client
if (typeof window !== 'undefined') {
  renderApp();
}

// Export pour le pré-rendu
export { prerender } from './prerender.jsx';