From 981a8bc5afe85b4ca76f84555ce4189b7366a7d6 Mon Sep 17 00:00:00 2001 From: Artur Tagisow Date: Fri, 24 Jun 2022 11:18:45 +0200 Subject: [PATCH] fix(checkout): find addresses with numeric id user addresses are returned by the backend with addressId being of type `number` but for some reason we were looking for them using the addressId casted to `string`, so they were never found. userShippingGetters.getAddress matches criteria based on strict type checking `===` so that's why the eg. addressId String(131) did not match Number(131) M2-755 --- .../theme/modules/checkout/pages/Checkout/Billing.vue | 8 ++++---- .../theme/modules/checkout/pages/Checkout/Shipping.vue | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/theme/modules/checkout/pages/Checkout/Billing.vue b/packages/theme/modules/checkout/pages/Checkout/Billing.vue index f0e5b99af..f5b9f0eed 100644 --- a/packages/theme/modules/checkout/pages/Checkout/Billing.vue +++ b/packages/theme/modules/checkout/pages/Checkout/Billing.vue @@ -311,7 +311,7 @@ import type { ShippingCartAddress, BillingCartAddress, Country, Customer, CustomerAddress, } from '~/modules/GraphQL/types'; -const NOT_SELECTED_ADDRESS = ''; +const NOT_SELECTED_ADDRESS = -1; extend('required', { ...required, @@ -371,7 +371,7 @@ export default defineComponent({ ? addressFromApiToForm(billingAddress.value) : getInitialCheckoutAddressForm(), ); - const currentAddressId = ref(NOT_SELECTED_ADDRESS); + const currentAddressId = ref(NOT_SELECTED_ADDRESS); const setAsDefault = ref(false); const isFormSubmitted = ref(false); const canAddNewAddress = ref(true); @@ -400,7 +400,7 @@ export default defineComponent({ const billingDetailsData = { billingDetails: { ...billingDetails.value, - customerAddressId: addressId, + customerAddressId: String(addressId), sameAsShipping: sameAsShipping.value, }, }; @@ -453,7 +453,7 @@ export default defineComponent({ const handleSetCurrentAddress = (addr: CustomerAddress) => { billingDetails.value = { ...addressFromApiToForm(addr) }; - currentAddressId.value = String(addr?.id); + currentAddressId.value = addr?.id; canAddNewAddress.value = false; isBillingDetailsStepCompleted.value = false; }; diff --git a/packages/theme/modules/checkout/pages/Checkout/Shipping.vue b/packages/theme/modules/checkout/pages/Checkout/Shipping.vue index a5cc5ad68..2164be97a 100644 --- a/packages/theme/modules/checkout/pages/Checkout/Shipping.vue +++ b/packages/theme/modules/checkout/pages/Checkout/Shipping.vue @@ -288,7 +288,7 @@ import { addressFromApiToForm, CheckoutAddressForm, getInitialCheckoutAddressFor import { mergeItem } from '~/helpers/asyncLocalStorage'; import { isPreviousStepValid } from '~/helpers/checkout/steps'; -const NOT_SELECTED_ADDRESS = ''; +const NOT_SELECTED_ADDRESS = -1; extend('required', { ...required, @@ -339,7 +339,7 @@ export default defineComponent({ const { isAuthenticated } = useUser(); const shippingDetails = ref(address.value ? addressFromApiToForm(address.value) : getInitialCheckoutAddressForm()); const shippingMethods = ref([]); - const currentAddressId = ref(NOT_SELECTED_ADDRESS); + const currentAddressId = ref(NOT_SELECTED_ADDRESS); const setAsDefault = ref(false); const isFormSubmitted = ref(false); const canAddNewAddress = ref(true); @@ -397,7 +397,7 @@ export default defineComponent({ const handleSetCurrentAddress = (addr: CustomerAddress) => { shippingDetails.value = { ...addressFromApiToForm(addr) }; - currentAddressId.value = String(addr?.id); + currentAddressId.value = addr?.id; canAddNewAddress.value = false; isShippingDetailsStepCompleted.value = false; };