24 lines
827 B
TypeScript

import { toast } from "sonner";
import { useMutation, useQueryClient } from "@tanstack/react-query";
import { refreshTrackingKeywordMetrics } from "@/serverFunctions/rank-tracking";
export function useMetricsRefresh(projectId: string, configId: string) {
const queryClient = useQueryClient();
const mutation = useMutation({
mutationFn: () =>
refreshTrackingKeywordMetrics({
data: { projectId, configId },
}),
onSuccess: (result) => {
void queryClient.invalidateQueries({
queryKey: ["rankTrackingResults", projectId, configId],
});
toast.success(`Metrics updated for ${result.updated} keywords`);
},
onError: () => {
toast.error("Failed to refresh keyword metrics");
},
});
return { refresh: mutation.mutate, isRefreshing: mutation.isPending };
}