Explains why the delivery fee specifically never changed while other address info (label, street) updated fine after the previous fix: AddAddressFormView only sets latLong when the CEP lookup happens to return coordinates (AddAddressFormView.swift:141-146) — plenty of saved addresses have none. Without coordinates the backend can't distinguish that address from the previous one, so the fee (and, in Checkout, checkoutAddressWatchKey itself) never actually changes, without any error surfacing since it likely falls back to some default fee instead of rejecting. Added LocationService.geocodeAddress(street:number:neighborhood:city: state:zip:), a thin CLGeocoder wrapper, and call it in both CartView.refreshDeliveryFee and CheckoutView+Logic. validateDeliveryAddressIfNeeded whenever coordinates are missing, persisting the result back into appState.address so it doesn't need to re-geocode on every subsequent check.
403 lines
16 KiB
Swift
403 lines
16 KiB
Swift