'use client';

import { useState } from 'react';
import { getCsrfToken } from '@/lib/csrf';
import { broadcastMhEvent } from '@/lib/cross-tab-sync';
import { clearOfflineContinuitySnapshots } from '@/lib/offline/offlineContinuity';
import { clearBrowserQueryClientForLogout } from '@/lib/query/client';

export function useLogout() {
  const [loading, setLoading] = useState(false);

  async function logout() {
    if (loading) return;
    setLoading(true);
    try {
      const res = await fetch('/api/auth/logout', {
        method: 'POST',
        headers: { 'x-csrf-token': getCsrfToken() },
      });
      if (!res.ok) {
        console.error('[logout] server returned', res.status);
      }
    } catch (err) {
      console.error('[logout] fetch failed', err);
    } finally {
      setLoading(false);
      clearOfflineContinuitySnapshots();
      clearBrowserQueryClientForLogout();
      broadcastMhEvent({ kind: 'logout' });
      window.location.href = '/login';
    }
  }

  return { logout, loading };
}
