29 lines
834 B
TypeScript
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"] });
|
|
},
|
|
});
|
|
}
|