diff --git a/packages/composables/src/getVueContext.ts b/packages/composables/src/getVueContext.ts deleted file mode 100644 index b789510be..000000000 --- a/packages/composables/src/getVueContext.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* eslint-disable no-param-reassign */ -import { EffectScope } from '@vue/composition-api'; -import { NuxtAppOptions } from '@nuxt/types/app'; -import { getContextProperty } from './helpers/getContextProperty'; - -export const extendScopeContext = (scope: EffectScope, app: NuxtAppOptions) => { - // @ts-ignore - if (scope.vm) { - // @ts-ignore - scope.vm.interceptors = getContextProperty(app, 'interceptors'); - // @ts-ignore - scope.vm.i18n = getContextProperty(app, 'i18n'); - // @ts-ignore - scope.vm.routing = getContextProperty(app, 'routing'); - // @ts-ignore - scope.vm.magento = getContextProperty(app, 'magento'); - } -}; diff --git a/packages/composables/src/helpers/getContextProperty.ts b/packages/composables/src/helpers/getContextProperty.ts deleted file mode 100644 index 9a898d2ba..000000000 --- a/packages/composables/src/helpers/getContextProperty.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const getContextProperty = (object: Record, name: string) => ( - object?.[`$${name}`] - || object?.[name]) as RETURN_TYPE; diff --git a/packages/composables/src/index.ts b/packages/composables/src/index.ts index a430e08e1..26126739d 100644 --- a/packages/composables/src/index.ts +++ b/packages/composables/src/index.ts @@ -4,7 +4,6 @@ import { track } from '@vue-storefront/core'; track('VSFMagento'); export * from './getters'; -export * from './getVueContext'; export { default as useAddresses } from './composables/useAddresses'; export { default as useBilling } from './composables/useBilling'; diff --git a/packages/theme/helpers/userAddressManipulator.ts b/packages/theme/helpers/userAddressManipulator.ts new file mode 100644 index 000000000..b05e4a748 --- /dev/null +++ b/packages/theme/helpers/userAddressManipulator.ts @@ -0,0 +1,78 @@ +import { CustomerAddressInput } from '~/modules/GraphQL/types'; + +export const transformUserCreateAddressInput = (addressInputParams): CustomerAddressInput => { + const { + apartment, + neighborhood, + extra, + ...address + } = addressInputParams.address; + + const street = [address.street]; + + if (apartment) street.push(apartment); + + if (neighborhood) street.push(neighborhood); + + if (extra) street.push(extra); + + return { + ...address, + street, + }; +}; + +export const transformUserUpdateAddressInput = (addressInputParams): { + addressId: number; + input: CustomerAddressInput; +} => { + const { + apartment, + neighborhood, + extra, + id, + // @ts-ignore + // eslint-disable-next-line + extension_attributes, + // @ts-ignore + // eslint-disable-next-line no-underscore-dangle + __typename: typenameAddress, + ...address + } = addressInputParams.address; + + const { + // @ts-ignore + // eslint-disable-next-line no-underscore-dangle + __typename: typenameRegion, + ...region + } = address.region; + + const street = (Array.isArray(address.street) ? [...address.street] : [address.street]); + + if (apartment) street.push(apartment); + + if (neighborhood) street.push(neighborhood); + + if (extra) street.push(extra); + + const addressParams: CustomerAddressInput = { + ...address, + region, + street: street.filter(Boolean), + }; + + return { + addressId: id, + input: { + ...addressParams, + }, + }; +}; + +export const transformUserGetter = (addressInput) => ({ + ...addressInput, + street: addressInput.street[0], + apartment: addressInput.street[1], + neighborhood: addressInput.street[2], + extra: addressInput.street[3], +});