import React from 'react';
import { createRoot } from 'react-dom/client';
import App from './App';
import './index.css';
import { ErrorHandler } from './lib/errorHandler';

const errorHandler = ErrorHandler.getInstance();

// Adiciona tratamento de erros global
window.onerror = (message, source, lineno, colno, error) => {
  errorHandler.handleError(error || new Error(String(message)), 'global');
  return false;
};

// Adiciona tratamento de rejeições de promessas não tratadas
window.onunhandledrejection = (event) => {
  errorHandler.handleError(event.reason, 'promise');
};

const rootElement = document.getElementById('root');
if (!rootElement) {
  throw new Error('Elemento root não encontrado');
}

const root = createRoot(rootElement);

// Renderiza o app com tratamento de erros
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);