
'use client';

import { useEffect } from 'react';
import { logClientError } from '@/lib/log-client-error';

/**
 * Faengt globale, unbehandelte Fehler (window "error"-Event) und nicht
 * abgefangene Promise-Rejections ab - genau die Bugs, die sonst NUR in der
 * Browser-Konsole des jeweiligen Nutzers sichtbar waeren und als Betreiber
 * nie bemerkt wuerden. Wird einmalig in app/layout.tsx innerhalb von
 * <LanguageProvider> gemountet, rendert selbst nichts (return null).
 */
export function ErrorReporter() {
  useEffect(() => {
    function handleError(event: ErrorEvent) {
      logClientError(event.message || 'Unbekannter Fehler', {
        stack: event.error?.stack,
        filename: event.filename,
        lineno: event.lineno,
      });
    }

    function handleRejection(event: PromiseRejectionEvent) {
      const reason = event.reason;
      logClientError(
        typeof reason === 'string' ? reason : reason?.message || 'Unhandled Promise Rejection',
        { stack: reason?.stack },
      );
    }

    window.addEventListener('error', handleError);
    window.addEventListener('unhandledrejection', handleRejection);
    return () => {
      window.removeEventListener('error', handleError);
      window.removeEventListener('unhandledrejection', handleRejection);
    };
  }, []);

  return null;
}
