41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
import * as usuariosApi from '../api/usuarios';
|
|
import type { UserInvite, UserUpdate } from '@horux/shared';
|
|
|
|
export function useUsuarios() {
|
|
return useQuery({
|
|
queryKey: ['usuarios'],
|
|
queryFn: usuariosApi.getUsuarios,
|
|
});
|
|
}
|
|
|
|
export function useInviteUsuario() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: (data: UserInvite) => usuariosApi.inviteUsuario(data),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ['usuarios'] });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useUpdateUsuario() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: ({ id, data }: { id: string; data: UserUpdate }) => usuariosApi.updateUsuario(id, data),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ['usuarios'] });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useDeleteUsuario() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: (id: string) => usuariosApi.deleteUsuario(id),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ['usuarios'] });
|
|
},
|
|
});
|
|
}
|