45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
import { CreateUser, UpdateUser } from "../schemas/inventory";
|
|
import { updateUserAction, createUserAction, deleteUserAction, updateProfileAction } from "../actions/actions";
|
|
|
|
// Create mutation
|
|
export function useCreateUser() {
|
|
const queryClient = useQueryClient();
|
|
const mutation = useMutation({
|
|
mutationFn: (data: CreateUser) => createUserAction(data),
|
|
onSuccess: () => queryClient.invalidateQueries({ queryKey: ['users'] }),
|
|
// onError: (e) => console.error('Error:', e),
|
|
})
|
|
return mutation
|
|
}
|
|
|
|
// Update mutation
|
|
export function useUpdateUser() {
|
|
const queryClient = useQueryClient();
|
|
const mutation = useMutation({
|
|
mutationFn: (data: UpdateUser) => updateUserAction(data),
|
|
onSuccess: () => queryClient.invalidateQueries({ queryKey: ['users'] }),
|
|
onError: (e) => console.error('Error:', e)
|
|
})
|
|
return mutation;
|
|
}
|
|
|
|
export function useUpdateProfile() {
|
|
const queryClient = useQueryClient();
|
|
const mutation = useMutation({
|
|
mutationFn: (data: UpdateUser) => updateProfileAction(data),
|
|
onSuccess: () => queryClient.invalidateQueries({ queryKey: ['users'] }),
|
|
// onError: (e) => console.error('Error:', e)
|
|
})
|
|
return mutation;
|
|
}
|
|
|
|
// Delete mutation
|
|
export function useDeleteUser() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: (id: number) => deleteUserAction(id),
|
|
onSuccess: () => queryClient.invalidateQueries({ queryKey: ['users'] }),
|
|
onError: (e) => console.error('Error:', e)
|
|
})
|
|
} |