Files
k-tv/k-tv-frontend/hooks/use-library-sync.ts

29 lines
834 B
TypeScript

"use client";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { api } from "@/lib/api";
import { useAuthContext } from "@/context/auth-context";
export function useLibrarySyncStatus() {
const { token } = useAuthContext();
return useQuery({
queryKey: ["library", "sync"],
queryFn: () => api.library.syncStatus(token!),
enabled: !!token,
staleTime: 30 * 1000,
refetchInterval: 10 * 1000,
});
}
export function useTriggerSync() {
const { token } = useAuthContext();
const queryClient = useQueryClient();
return useMutation({
mutationFn: () => api.library.triggerSync(token!),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["library", "search"] });
queryClient.invalidateQueries({ queryKey: ["library", "sync"] });
},
});
}