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