import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { Database, Loader2, Pause, Play } from "lucide-react"; import { api } from "../lib/api"; import { formatViews } from "../lib/format"; export default function SyncStatus() { const qc = useQueryClient(); const { data } = useQuery({ queryKey: ["sync-status"], queryFn: api.status, refetchInterval: 30_000, staleTime: 25_000, }); const toggle = useMutation({ mutationFn: () => (data?.paused ? api.resumeSync() : api.pauseSync()), onSuccess: () => qc.invalidateQueries({ queryKey: ["sync-status"] }), }); if (!data) return null; return (
{formatViews(data.videos_total)} videos ยท {data.paused ? ( paused ) : data.channels_backfilling > 0 ? ( {data.channels_backfilling} syncing ) : ( all synced )} {data.is_admin && ( )}
); }