Files
dkala-front/src/app/[name]/(Profile)/profile/address/hooks/useAddressData.ts
T
2026-02-07 15:31:22 +03:30

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,
});
};