// frontend/lib/hooks/useConnectors.ts — SWR 커넥터 상태 목록 "use client"; import useSWR from "swr"; import type { ConnectorStatus } from "@/lib/types"; import { connectorsApi } from "@/lib/connectors/api"; export function useConnectors(domain = "") { const { data, error, isLoading, mutate } = useSWR( domain ? `/api/connectors?domain=${domain}` : "/api/connectors", () => connectorsApi.list(domain), { revalidateOnFocus: false, // 초기 연결 직후엔 백그라운드 sync 가 도는 동안 state="syncing" 이다. // 동기화 중인 계정이 하나라도 있으면 끝날 때까지 2초마다 갱신, 끝나면 멈춘다. // (이게 없으면 "동기화 중…" 카드가 완료된 뒤에도 안 바뀌고 멈춰 있음.) refreshInterval: (latest) => (latest?.some((c) => c.state === "syncing") ? 2000 : 0), }, ); return { data, isLoading, error, refresh: mutate }; }