From a04ca599ba25bc42d93cf8f895a7f6180a4c9f8e Mon Sep 17 00:00:00 2001 From: Bartosz Herba Date: Wed, 9 Feb 2022 12:42:51 +0100 Subject: [PATCH] refactor(theme): refactor useCart composable --- .../src/composables/useCart/index.ts | 7 +- .../src/composables/useFacet/index.ts | 5 + .../src/composables/useGuestUser/index.ts | 5 + .../src/factories/useCartFactory.ts | 5 + .../src/factories/useGuestUserFactory.ts | 5 + .../composables/src/getters/cartGetters.ts | 3 +- packages/theme/components/AppHeader.vue | 2 +- packages/theme/components/CartSidebar.vue | 2 +- .../theme/components/Checkout/CartPreview.vue | 3 +- .../Checkout/VsfShippingProvider.vue | 2 +- packages/theme/components/CouponCode.vue | 3 +- .../Products/BundleProductSelector.vue | 3 +- .../Products/GroupedProductSelector.vue | 4 +- packages/theme/composables/index.ts | 2 + .../useCart/commands/addItemCommand.ts | 162 +++++++++++ .../useCart/commands/applyCouponCommand.ts | 27 ++ .../useCart/commands/clearCartCommand.ts | 7 + .../useCart/commands/loadCartCommand.ts | 83 ++++++ .../useCart/commands/removeCouponCommand.ts | 19 ++ .../useCart/commands/removeItemCommand.ts | 35 +++ .../useCart/commands/updateItemQtyCommand.ts | 35 +++ packages/theme/composables/useCart/index.ts | 268 ++++++++++++++++++ .../theme/composables/useCart/useCart.d.ts | 24 ++ .../commands/attachToCartCommand.ts | 17 ++ .../theme/composables/useGuestUser/index.ts | 35 +++ .../useGuestUser/useGuestUser.d.ts | 20 ++ packages/theme/composables/useUser/index.ts | 3 +- packages/theme/helpers/cart/addToCart.ts | 3 +- packages/theme/pages/Checkout.vue | 2 +- packages/theme/pages/Checkout/Payment.vue | 3 +- packages/theme/pages/Checkout/UserAccount.vue | 9 +- packages/theme/pages/MyAccount/MyWishlist.vue | 5 +- packages/theme/pages/Product.vue | 5 +- packages/theme/stores/customer.ts | 14 +- 34 files changed, 799 insertions(+), 28 deletions(-) create mode 100644 packages/theme/composables/useCart/commands/addItemCommand.ts create mode 100644 packages/theme/composables/useCart/commands/applyCouponCommand.ts create mode 100644 packages/theme/composables/useCart/commands/clearCartCommand.ts create mode 100644 packages/theme/composables/useCart/commands/loadCartCommand.ts create mode 100644 packages/theme/composables/useCart/commands/removeCouponCommand.ts create mode 100644 packages/theme/composables/useCart/commands/removeItemCommand.ts create mode 100644 packages/theme/composables/useCart/commands/updateItemQtyCommand.ts create mode 100644 packages/theme/composables/useCart/index.ts create mode 100644 packages/theme/composables/useCart/useCart.d.ts create mode 100644 packages/theme/composables/useGuestUser/commands/attachToCartCommand.ts create mode 100644 packages/theme/composables/useGuestUser/index.ts create mode 100644 packages/theme/composables/useGuestUser/useGuestUser.d.ts diff --git a/packages/composables/src/composables/useCart/index.ts b/packages/composables/src/composables/useCart/index.ts index 6383819e0..e073fcfe6 100644 --- a/packages/composables/src/composables/useCart/index.ts +++ b/packages/composables/src/composables/useCart/index.ts @@ -1,5 +1,8 @@ -/* istanbul ignore file */ -/* eslint-disable no-param-reassign */ +/** + * @deprecated since version + * + * @see + */ import { ComposableFunctionArgs, Context, diff --git a/packages/composables/src/composables/useFacet/index.ts b/packages/composables/src/composables/useFacet/index.ts index 354a0195d..b200092d3 100644 --- a/packages/composables/src/composables/useFacet/index.ts +++ b/packages/composables/src/composables/useFacet/index.ts @@ -1,3 +1,8 @@ +/** + * @deprecated since version + * + * @see + */ import { ComposableFunctionArgs, Context, diff --git a/packages/composables/src/composables/useGuestUser/index.ts b/packages/composables/src/composables/useGuestUser/index.ts index 7074561fd..b336b2919 100644 --- a/packages/composables/src/composables/useGuestUser/index.ts +++ b/packages/composables/src/composables/useGuestUser/index.ts @@ -1,3 +1,8 @@ +/** + * @deprecated since version + * + * @see + */ import { SetGuestEmailOnCartInput } from '@vue-storefront/magento-api'; import { Logger } from '@vue-storefront/core'; import { useGuestUserFactory, UseGuestUserFactoryParams } from '../../factories/useGuestUserFactory'; diff --git a/packages/composables/src/factories/useCartFactory.ts b/packages/composables/src/factories/useCartFactory.ts index b8a4e3429..e1123454a 100644 --- a/packages/composables/src/factories/useCartFactory.ts +++ b/packages/composables/src/factories/useCartFactory.ts @@ -1,3 +1,8 @@ +/** + * @deprecated since version + * + * @see + */ import { CustomQuery, UseCart, Context, FactoryParams, UseCartErrors, PlatformApi, sharedRef, Logger, configureFactoryParams, ComposableFunctionArgs, } from '@vue-storefront/core'; diff --git a/packages/composables/src/factories/useGuestUserFactory.ts b/packages/composables/src/factories/useGuestUserFactory.ts index 549ac9015..eb64e996b 100644 --- a/packages/composables/src/factories/useGuestUserFactory.ts +++ b/packages/composables/src/factories/useGuestUserFactory.ts @@ -1,3 +1,8 @@ +/** + * @deprecated since version + * + * @see + */ import { Ref, computed } from '@vue/composition-api'; import { Context, diff --git a/packages/composables/src/getters/cartGetters.ts b/packages/composables/src/getters/cartGetters.ts index 5432d8b59..a7b23e130 100644 --- a/packages/composables/src/getters/cartGetters.ts +++ b/packages/composables/src/getters/cartGetters.ts @@ -13,6 +13,7 @@ import { Product, SelectedShippingMethod, ConfigurableCartItem, ProductInterface, } from '@vue-storefront/magento-api'; + import productGetters from './productGetters'; import { AgnosticPaymentMethod } from '../types'; @@ -145,7 +146,7 @@ export const getCoupons = (cart: Cart): AgnosticCoupon[] => (Array.isArray(cart? code: c.code, } as AgnosticCoupon)) : []); -export const getDiscounts = (cart: Cart): AgnosticDiscount[] => (Array.isArray(cart?.prices.discounts) ? cart.prices.discounts.map((d) => ({ +export const getDiscounts = (cart: Cart): AgnosticDiscount[] => (Array.isArray(cart?.prices?.discounts) ? cart.prices.discounts.map((d) => ({ id: d.label, name: d.label, description: '', diff --git a/packages/theme/components/AppHeader.vue b/packages/theme/components/AppHeader.vue index 92671470e..4777b5612 100644 --- a/packages/theme/components/AppHeader.vue +++ b/packages/theme/components/AppHeader.vue @@ -170,7 +170,6 @@ import { import { cartGetters, categoryGetters, - useCart, useCategorySearch, wishlistGetters, } from '@vue-storefront/magento'; @@ -192,6 +191,7 @@ import { } from '@storefront-ui/vue/src/utilities/mobile-observer.js'; import debounce from 'lodash.debounce'; import { + useCart, useUiHelpers, useUiState, useWishlist, diff --git a/packages/theme/components/CartSidebar.vue b/packages/theme/components/CartSidebar.vue index 4a9506a9c..0431f91bb 100644 --- a/packages/theme/components/CartSidebar.vue +++ b/packages/theme/components/CartSidebar.vue @@ -253,11 +253,11 @@ import { useContext, onMounted, } from '@nuxtjs/composition-api'; import { - useCart, cartGetters, } from '@vue-storefront/magento'; import _debounce from 'lodash.debounce'; import { + useCart, useUiState, useUiNotification, useUser, diff --git a/packages/theme/components/Checkout/CartPreview.vue b/packages/theme/components/Checkout/CartPreview.vue index 7dc34de8c..f0212a53d 100644 --- a/packages/theme/components/Checkout/CartPreview.vue +++ b/packages/theme/components/Checkout/CartPreview.vue @@ -53,7 +53,8 @@