"use client"; import { useCallback } from "react"; import { useQueryClient } from "@tanstack/react-query"; import { queryKeys } from "@/lib/api"; import { accountService } from "@/features/account/services/account.service"; import { addressFormSchema, addressFormToRequest, type AddressFormData, } from "@customer-portal/domain/customer"; import { useZodForm } from "@/hooks/useZodForm"; export function useAddressEdit(initial: AddressFormData) { const queryClient = useQueryClient(); const handleSave = useCallback( async (formData: AddressFormData) => { const requestData = addressFormToRequest(formData); await accountService.updateAddress(requestData); // Address changes can affect server-personalized catalog results (eligibility). await queryClient.invalidateQueries({ queryKey: queryKeys.services.all() }); }, [queryClient] ); return useZodForm({ schema: addressFormSchema, initialValues: initial, onSubmit: handleSave, }); }