'use client';

import { useEffect } from 'react';
import { syncAnonymousReportOutbox, syncIssueReportOutbox } from '@/lib/offline-report-outbox';
import { syncDeliveryEvidence } from '@/lib/delivery-evidence-outbox';
import { useOfflineSync } from '@/hooks/use-offline-sync';

export function OfflineReportSyncAgent() {
  useOfflineSync();
  useEffect(() => {
    const sync = () => {
      void syncAnonymousReportOutbox().catch(error => {
        console.warn('[offline-reports] sync deferred', error);
      });
      void syncDeliveryEvidence().catch(() => undefined);
      void syncIssueReportOutbox().catch(() => undefined);
    };

    sync();
    window.addEventListener('online', sync);
    const timer = setInterval(sync, 30000);
    return () => {
      clearInterval(timer);
      window.removeEventListener('online', sync);
    };
  }, []);

  return null;
}
