feat(frontend): add useLibrarySearch, useLibrarySyncStatus, useTriggerSync, useAdminSettings hooks
This commit is contained in:
28
k-tv-frontend/hooks/use-library-sync.ts
Normal file
28
k-tv-frontend/hooks/use-library-sync.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
"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"] });
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user