Files
sistema_base/apps/web/feactures/training/hooks/use-training.ts

45 lines
1.4 KiB
TypeScript

import { useSafeQuery } from '@/hooks/use-safe-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import {
createTrainingAction,
deleteTrainingAction,
getTrainingAction,
getTrainingByIdAction,
updateTrainingAction,
} from '../actions/training-actions';
import { TrainingSchema } from '../schemas/training';
export function useTrainingQuery(params = {}) {
return useSafeQuery(['training', params], () => getTrainingAction(params));
}
export function useTrainingByIdQuery(id: number) {
return useSafeQuery(['training', id], () => getTrainingByIdAction(id));
}
export function useCreateTraining() {
const queryClient = useQueryClient();
const mutation = useMutation({
mutationFn: (data: TrainingSchema) => createTrainingAction(data),
onSuccess: () => queryClient.invalidateQueries({ queryKey: ['training'] }),
});
return mutation;
}
export function useUpdateTraining() {
const queryClient = useQueryClient();
const mutation = useMutation({
mutationFn: (data: TrainingSchema) => updateTrainingAction(data),
onSuccess: () => queryClient.invalidateQueries({ queryKey: ['training'] }),
});
return mutation;
}
export function useDeleteTraining() {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (id: number) => deleteTrainingAction(id),
onSuccess: () => queryClient.invalidateQueries({ queryKey: ['training'] }),
});
}