import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { fetchLlmPrompts, createLlmPrompt, updateLlmPrompt, setDefaultLlmPrompt, deleteLlmPrompt } from './llmPromptApi'; export const useLlmPrompts = () => { const queryClient = useQueryClient(); const { data: prompts = [], isLoading, error } = useQuery({ queryKey: ['llmPrompts'], queryFn: fetchLlmPrompts, }); const createMutation = useMutation({ mutationFn: createLlmPrompt, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['llmPrompts'] }); }, }); const updateMutation = useMutation({ mutationFn: updateLlmPrompt, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['llmPrompts'] }); }, }); const setDefaultMutation = useMutation({ mutationFn: setDefaultLlmPrompt, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['llmPrompts'] }); }, }); const deleteMutation = useMutation({ mutationFn: deleteLlmPrompt, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['llmPrompts'] }); }, }); return { prompts, isLoading, error: error ? (error instanceof Error ? error.message : 'Failed to fetch prompturations') : null, createPrompt: createMutation.mutateAsync, updatePrompt: updateMutation.mutateAsync, setAsDefaultPrompt: setDefaultMutation.mutateAsync, deletePrompt: deleteMutation.mutateAsync, }; };