import {StrictMode} from 'react';
import {createRoot} from 'react-dom/client';
import App from './App.tsx';
import './index.css';
import { initErrorLogger } from './lib/errorLogger';

// Global handler to suppress benign WebSocket / Vite HMR preview sandbox events
const suppressNoise = (e: any) => {
  const reason = e?.reason || e?.error || e?.message || '';
  const text = (typeof reason === 'string' ? reason : reason?.message || reason?.stack || String(reason || '')).toLowerCase();
  if (
    text.includes('websocket closed without opened') ||
    text.includes('closed without opened') ||
    text.includes('failed to connect to websocket') ||
    text.includes('vite') ||
    text.includes('ws://') ||
    text.includes('wss://')
  ) {
    if (typeof e?.preventDefault === 'function') e.preventDefault();
    if (typeof e?.stopImmediatePropagation === 'function') e.stopImmediatePropagation();
    return true;
  }
  return false;
};

window.addEventListener('unhandledrejection', suppressNoise, true);
window.addEventListener('error', suppressNoise, true);

// Inisialisasi Error Logger global untuk menangkap runtime errors & unhandled rejections
initErrorLogger();

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <App />
  </StrictMode>,
);

