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

// Guard against benign Chromium / WebView ImageCapture & MediaStreamTrack teardown rejections
// ("setPhotoOptions failed", "The associated Track is in an invalid state")
if (typeof window !== 'undefined') {
  const isBenignMediaTrackError = (msg: string) =>
    /setPhotoOptions|associated Track is in an invalid state|Track is in an invalid state/i.test(msg);

  window.addEventListener('unhandledrejection', (event) => {
    const msg = String(event.reason?.message || event.reason || '');
    if (isBenignMediaTrackError(msg)) {
      event.preventDefault();
    }
  });
  window.addEventListener(
    'error',
    (event) => {
      const msg = String(event.message || event.error?.message || '');
      if (isBenignMediaTrackError(msg)) {
        event.preventDefault();
      }
    },
    true
  );
}

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

