All files / src/hooks useAiPrompts.ts

100% Statements 10/10
100% Branches 0/0
100% Functions 7/7
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                  1x     5x             5x 5x 3x     2x           5x 5x 3x   2x        
/**
 * AI Prompt React Query Hooks
 *
 * Custom hooks for AI prompt data fetching and mutations.
 */
 
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import { listAiPrompts, updateAiPrompt, resetAiPrompt } from '@/services/aiPromptService';
 
const QUERY_KEY = 'aiPrompts' as const;
 
export function useAiPrompts() {
  return useQuery({
    queryKey: [QUERY_KEY],
    queryFn: listAiPrompts,
  });
}
 
export function useUpdateAiPrompt() {
  const queryClient = useQueryClient();
  return useMutation({
    mutationFn: ({ promptKey, promptText }: { promptKey: string; promptText: string }) =>
      updateAiPrompt(promptKey, promptText),
    onSuccess: () => {
      queryClient.invalidateQueries({ queryKey: [QUERY_KEY] });
    },
  });
}
 
export function useResetAiPrompt() {
  const queryClient = useQueryClient();
  return useMutation({
    mutationFn: (promptKey: string) => resetAiPrompt(promptKey),
    onSuccess: () => {
      queryClient.invalidateQueries({ queryKey: [QUERY_KEY] });
    },
  });
}