65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
import {
|
|
createAddress,
|
|
getAddresses,
|
|
updateAddress,
|
|
deleteAddress,
|
|
setDefaultAddress,
|
|
getAddressById,
|
|
} from "../service/AddressService";
|
|
|
|
export const useGetAddresses = () => {
|
|
return useQuery({
|
|
queryKey: ["addresses"],
|
|
queryFn: () => getAddresses(),
|
|
});
|
|
};
|
|
|
|
export const useCreateAddress = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: createAddress,
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["addresses"] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useUpdateAddress = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: updateAddress,
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["addresses"] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useDeleteAddress = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: deleteAddress,
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["addresses"] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useSetDefaultAddress = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: setDefaultAddress,
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["addresses"] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useGetAddressById = (id: string | null) => {
|
|
return useQuery({
|
|
queryKey: ["address", id],
|
|
queryFn: () => getAddressById(id!),
|
|
enabled: !!id,
|
|
});
|
|
};
|