@anker-in/shopify-react 0.1.1-beta.41 → 0.1.1-beta.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { CartContextValue, CartProvider, CartProviderProps, LoadingState, ShopifyContext, ShopifyContextValue, ShopifyProvider, ShopifyProviderProps, useCartContext, useShopify } from './provider/index.mjs';
2
2
  export { C as CookieAdapter, a as CookieOptions, P as PerformanceAdapter, R as RouterAdapter, U as UserContextAdapter } from './types-SKDHauqk.mjs';
3
3
  export { BrowserPerformanceAdapter, browserCartCookieAdapter, browserCookieAdapter } from './adapters/index.mjs';
4
- export { AddCartLinesInput, ApplyCartCodesInput, AutoFreeGift, AutoFreeGiftCartLineInput, AutoFreeGiftConfig, AutoFreeGiftItem, AutoFreeGiftList, AutoFreeGiftMainProduct, BuyNowInput, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, Config, CreateCartInput, DiscountLabel, FormattedGift, FunctionGiftResult, GeoLocationData, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MEMBER_PRICE_ATTRIBUTE_KEY, MainProductInfo, NormalizedSearchResultItem, Options, OrderBasePriceType, OrderDiscountConfig, OrderDiscountResult, OrderDiscountType, PlusMemberContext, PlusMemberContextValue, PlusMemberProvider, PlusMemberProviderProps, PriceBasePriceType, PriceDiscountConfig, PriceDiscountType, RemoveCartCodesInput, RemoveCartLinesInput, RewardItem, RuleCondition, RuleType, SCRIPT_CODE_AMOUNT_KEY, SearchResult, SearchResultType, SelectedOptionsResult, ShippingMethodsContext, SiteInfo, SpendMoneyType, TieredDiscount, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseAvailableDeliveryCouponResult, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInCartProps, UseIntersectionOptions, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseScriptAutoFreeGiftResult, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdatePlusMemberDeliveryOptionsProps, VariantItem, VariantMedia, VideoMedia, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useAvailableDeliveryCoupon, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMemberNeedAddToCart, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.mjs';
5
- export { a as AddToCartInput, A as AddToCartLineItem, B as BuyNowTrackConfig, g as DeliveryCustomData, h as DeliveryData, D as DeliveryPlusType, G as GtmParams, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberProduct, S as ShippingMethodMode, U as UseAddToCartOptions, i as gaTrack, l as trackAddToCartFBQ, t as trackAddToCartGA, j as trackBeginCheckoutGA, m as trackBuyNowFBQ, k as trackBuyNowGA } from './types-y1Wa95P3.mjs';
4
+ export { AddCartLinesInput, ApplyCartCodesInput, AutoFreeGift, AutoFreeGiftCartLineInput, AutoFreeGiftConfig, AutoFreeGiftItem, AutoFreeGiftList, AutoFreeGiftMainProduct, BuyNowInput, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, Config, CreateCartInput, DiscountLabel, FormattedGift, FunctionGiftResult, GeoLocationData, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MEMBER_PRICE_ATTRIBUTE_KEY, MainProductInfo, NormalizedSearchResultItem, Options, OrderBasePriceType, OrderDiscountConfig, OrderDiscountResult, OrderDiscountType, PlusMemberContext, PlusMemberContextValue, PlusMemberProvider, PlusMemberProviderProps, PriceBasePriceType, PriceDiscountConfig, PriceDiscountType, RemoveCartCodesInput, RemoveCartLinesInput, RewardItem, RuleCondition, RuleType, SCRIPT_CODE_AMOUNT_KEY, SearchResult, SearchResultType, SelectedOptionsResult, ShippingMethodsContext, SiteInfo, SpendMoneyType, TieredDiscount, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseAvailableDeliveryCouponResult, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInCartProps, UseIntersectionOptions, UsePlusMemberVariantsOptions, UsePlusMemberVariantsResult, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseScriptAutoFreeGiftResult, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdateCartAttributesOptions, UseUpdatePlusMemberDeliveryOptionsProps, VariantItem, VariantMedia, VideoMedia, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useAvailableDeliveryCoupon, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMemberNeedAddToCart, usePlusMemberVariants, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.mjs';
5
+ export { a as AddToCartInput, A as AddToCartLineItem, B as BuyNowTrackConfig, g as DeliveryCustomData, h as DeliveryData, D as DeliveryPlusType, G as GtmParams, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberVariant, S as ShippingMethodMode, U as UseAddToCartOptions, i as gaTrack, l as trackAddToCartFBQ, t as trackAddToCartGA, j as trackBeginCheckoutGA, m as trackBuyNowFBQ, k as trackBuyNowGA } from './types-DntkHhf8.mjs';
6
6
  export * from '@anker-in/shopify-sdk';
7
7
  import 'react';
8
8
  import 'react/jsx-runtime';
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { CartContextValue, CartProvider, CartProviderProps, LoadingState, ShopifyContext, ShopifyContextValue, ShopifyProvider, ShopifyProviderProps, useCartContext, useShopify } from './provider/index.js';
2
2
  export { C as CookieAdapter, a as CookieOptions, P as PerformanceAdapter, R as RouterAdapter, U as UserContextAdapter } from './types-SKDHauqk.js';
3
3
  export { BrowserPerformanceAdapter, browserCartCookieAdapter, browserCookieAdapter } from './adapters/index.js';
4
- export { AddCartLinesInput, ApplyCartCodesInput, AutoFreeGift, AutoFreeGiftCartLineInput, AutoFreeGiftConfig, AutoFreeGiftItem, AutoFreeGiftList, AutoFreeGiftMainProduct, BuyNowInput, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, Config, CreateCartInput, DiscountLabel, FormattedGift, FunctionGiftResult, GeoLocationData, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MEMBER_PRICE_ATTRIBUTE_KEY, MainProductInfo, NormalizedSearchResultItem, Options, OrderBasePriceType, OrderDiscountConfig, OrderDiscountResult, OrderDiscountType, PlusMemberContext, PlusMemberContextValue, PlusMemberProvider, PlusMemberProviderProps, PriceBasePriceType, PriceDiscountConfig, PriceDiscountType, RemoveCartCodesInput, RemoveCartLinesInput, RewardItem, RuleCondition, RuleType, SCRIPT_CODE_AMOUNT_KEY, SearchResult, SearchResultType, SelectedOptionsResult, ShippingMethodsContext, SiteInfo, SpendMoneyType, TieredDiscount, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseAvailableDeliveryCouponResult, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInCartProps, UseIntersectionOptions, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseScriptAutoFreeGiftResult, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdatePlusMemberDeliveryOptionsProps, VariantItem, VariantMedia, VideoMedia, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useAvailableDeliveryCoupon, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMemberNeedAddToCart, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.js';
5
- export { a as AddToCartInput, A as AddToCartLineItem, B as BuyNowTrackConfig, g as DeliveryCustomData, h as DeliveryData, D as DeliveryPlusType, G as GtmParams, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberProduct, S as ShippingMethodMode, U as UseAddToCartOptions, i as gaTrack, l as trackAddToCartFBQ, t as trackAddToCartGA, j as trackBeginCheckoutGA, m as trackBuyNowFBQ, k as trackBuyNowGA } from './types-y1Wa95P3.js';
4
+ export { AddCartLinesInput, ApplyCartCodesInput, AutoFreeGift, AutoFreeGiftCartLineInput, AutoFreeGiftConfig, AutoFreeGiftItem, AutoFreeGiftList, AutoFreeGiftMainProduct, BuyNowInput, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, Config, CreateCartInput, DiscountLabel, FormattedGift, FunctionGiftResult, GeoLocationData, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MEMBER_PRICE_ATTRIBUTE_KEY, MainProductInfo, NormalizedSearchResultItem, Options, OrderBasePriceType, OrderDiscountConfig, OrderDiscountResult, OrderDiscountType, PlusMemberContext, PlusMemberContextValue, PlusMemberProvider, PlusMemberProviderProps, PriceBasePriceType, PriceDiscountConfig, PriceDiscountType, RemoveCartCodesInput, RemoveCartLinesInput, RewardItem, RuleCondition, RuleType, SCRIPT_CODE_AMOUNT_KEY, SearchResult, SearchResultType, SelectedOptionsResult, ShippingMethodsContext, SiteInfo, SpendMoneyType, TieredDiscount, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseAvailableDeliveryCouponResult, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInCartProps, UseIntersectionOptions, UsePlusMemberVariantsOptions, UsePlusMemberVariantsResult, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseScriptAutoFreeGiftResult, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdateCartAttributesOptions, UseUpdatePlusMemberDeliveryOptionsProps, VariantItem, VariantMedia, VideoMedia, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useAvailableDeliveryCoupon, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMemberNeedAddToCart, usePlusMemberVariants, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.js';
5
+ export { a as AddToCartInput, A as AddToCartLineItem, B as BuyNowTrackConfig, g as DeliveryCustomData, h as DeliveryData, D as DeliveryPlusType, G as GtmParams, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberVariant, S as ShippingMethodMode, U as UseAddToCartOptions, i as gaTrack, l as trackAddToCartFBQ, t as trackAddToCartGA, j as trackBeginCheckoutGA, m as trackBuyNowFBQ, k as trackBuyNowGA } from './types-DntkHhf8.js';
6
6
  export * from '@anker-in/shopify-sdk';
7
7
  import 'react';
8
8
  import 'react/jsx-runtime';
package/dist/index.js CHANGED
@@ -1311,24 +1311,31 @@ function useRemoveCartLines(options) {
1311
1311
  );
1312
1312
  return useSWRMutation__default.default("remove-cart-lines", removeLines, options);
1313
1313
  }
1314
- function useUpdateCartAttributes(mutate, metafieldIdentifiers, options) {
1314
+ function useUpdateCartAttributes({
1315
+ mutate,
1316
+ metafieldIdentifiers,
1317
+ disabled = false,
1318
+ swrOptions
1319
+ }) {
1315
1320
  const { client, locale, cartCookieAdapter } = useShopify();
1316
1321
  const updateAttributes = react.useCallback(
1317
1322
  async (_key, { arg }) => {
1323
+ if (disabled || !cartCookieAdapter?.getCartId(locale)) {
1324
+ return void 0;
1325
+ }
1318
1326
  const updatedCart = await shopifySdk.updateCartAttributes(client, {
1319
1327
  ...arg,
1320
1328
  metafieldIdentifiers,
1321
1329
  cookieAdapter: cartCookieAdapter
1322
1330
  });
1323
- console.log("useUpdateCartAttributes updatedCart", updatedCart);
1324
1331
  if (updatedCart) {
1325
1332
  mutate(updatedCart);
1326
1333
  }
1327
1334
  return updatedCart;
1328
1335
  },
1329
- [client, locale, cartCookieAdapter, mutate, metafieldIdentifiers]
1336
+ [client, locale, cartCookieAdapter, mutate, metafieldIdentifiers, disabled]
1330
1337
  );
1331
- return useSWRMutation__default.default("update-cart-attributes", updateAttributes, options);
1338
+ return useSWRMutation__default.default("update-cart-attributes", updateAttributes, swrOptions);
1332
1339
  }
1333
1340
  function useBuyNow({ withTrack = true } = {}, swrOptions) {
1334
1341
  const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
@@ -1692,7 +1699,7 @@ var useCartAttributes = ({
1692
1699
  })
1693
1700
  }
1694
1701
  ] : [];
1695
- }, [cart]);
1702
+ }, [cart, customer]);
1696
1703
  const presellAttributes = react.useMemo(() => {
1697
1704
  return [
1698
1705
  {
@@ -1756,9 +1763,7 @@ var useCartAttributes = ({
1756
1763
  "_play_mode_id",
1757
1764
  "_popup"
1758
1765
  ];
1759
- return cart?.customAttributes?.filter(
1760
- (item) => !commonAttributeKeys.includes(item.key)
1761
- ) || [];
1766
+ return cart?.customAttributes?.filter((item) => !commonAttributeKeys.includes(item.key)) || [];
1762
1767
  }, [cart]);
1763
1768
  return react.useMemo(
1764
1769
  () => ({
@@ -2612,8 +2617,9 @@ var createInitialValue = () => ({
2612
2617
  tddCoupon: void 0,
2613
2618
  isLoadingCoupon: false
2614
2619
  },
2615
- selectedPlusMemberProduct: null,
2616
- plusMemberProducts: [],
2620
+ selectedPlusMemberVariant: void 0,
2621
+ monthlyVariant: void 0,
2622
+ annualVariant: void 0,
2617
2623
  showPlusMemberBenefit: false,
2618
2624
  setShowPlusMemberBenefit: () => {
2619
2625
  },
@@ -2627,33 +2633,39 @@ var PlusMemberContext = react.createContext(createInitialValue());
2627
2633
  function usePlusMemberContext() {
2628
2634
  return react.useContext(PlusMemberContext);
2629
2635
  }
2630
- function usePlusMonthlyProductVariant() {
2631
- const { plusMemberProducts, plusMemberMetafields } = usePlusMemberContext();
2632
- const plusMonthly = plusMemberMetafields?.plus_monthly_product;
2633
- const plusMonthlyProductVariant = react.useMemo(() => {
2634
- const product = plusMemberProducts?.find(
2635
- (item) => item?.handle === plusMonthly?.handle
2636
- );
2637
- const productVariant = product?.variants?.find(
2638
- (item) => item.sku === plusMonthly?.sku
2639
- );
2640
- return productVariant;
2636
+ function usePlusMemberVariants({
2637
+ memberSetting
2638
+ }) {
2639
+ const plusMonthly = memberSetting?.plus_monthly_product;
2640
+ const plusAnnual = memberSetting?.plus_annual_product;
2641
+ const plusMemberHandles = react.useMemo(() => {
2642
+ return [plusMonthly?.handle, plusAnnual?.handle].filter(Boolean);
2643
+ }, [plusMonthly?.handle, plusAnnual?.handle]);
2644
+ const { data: plusMemberProducts = [] } = useProductsByHandles({
2645
+ handles: plusMemberHandles
2646
+ });
2647
+ const monthlyProduct = react.useMemo(() => {
2648
+ return plusMemberProducts?.find((item) => item?.handle === plusMonthly?.handle);
2641
2649
  }, [plusMemberProducts, plusMonthly]);
2642
- return plusMonthlyProductVariant;
2643
- }
2644
- function usePlusAnnualProductVariant() {
2645
- const { plusMemberProducts, plusMemberMetafields } = usePlusMemberContext();
2646
- const plusAnnual = plusMemberMetafields?.plus_annual_product;
2647
- const plusAnnualProductVariant = react.useMemo(() => {
2648
- const product = plusMemberProducts?.find(
2649
- (item) => item?.handle === plusAnnual?.handle
2650
- );
2651
- const productVariant = product?.variants?.find(
2652
- (item) => item.sku === plusAnnual?.sku
2653
- );
2654
- return productVariant;
2650
+ const annualProduct = react.useMemo(() => {
2651
+ return plusMemberProducts?.find((item) => item?.handle === plusAnnual?.handle);
2655
2652
  }, [plusMemberProducts, plusAnnual]);
2656
- return plusAnnualProductVariant;
2653
+ const monthlyVariant = react.useMemo(() => {
2654
+ return monthlyProduct?.variants?.find((item) => item.sku === plusMonthly?.sku);
2655
+ }, [monthlyProduct, plusMonthly]);
2656
+ const annualVariant = react.useMemo(() => {
2657
+ return annualProduct?.variants?.find((item) => item.sku === plusAnnual?.sku);
2658
+ }, [annualProduct, plusAnnual]);
2659
+ return {
2660
+ monthlyVariant: monthlyVariant ? {
2661
+ ...monthlyVariant,
2662
+ product: monthlyProduct
2663
+ } : void 0,
2664
+ annualVariant: annualVariant ? {
2665
+ ...annualVariant,
2666
+ product: annualProduct
2667
+ } : void 0
2668
+ };
2657
2669
  }
2658
2670
  var useAvailableDeliveryCoupon = ({
2659
2671
  profile
@@ -3054,13 +3066,13 @@ function usePlusMemberNeedAddToCart({
3054
3066
  cart,
3055
3067
  profile
3056
3068
  }) {
3057
- const { selectedPlusMemberMode, selectedPlusMemberProduct, plusMemberMetafields } = usePlusMemberContext();
3069
+ const { selectedPlusMemberMode, selectedPlusMemberVariant, plusMemberMetafields } = usePlusMemberContext();
3058
3070
  const { hasMonthlyPlus, hasAnnualPlus } = useHasPlusMemberInCart({
3059
3071
  memberSetting: plusMemberMetafields,
3060
3072
  cart
3061
3073
  });
3062
- const plusMemberProduct = react.useMemo(() => {
3063
- if (!selectedPlusMemberProduct || selectedPlusMemberMode === "free" /* FREE */) {
3074
+ const plusMemberVariant = react.useMemo(() => {
3075
+ if (!selectedPlusMemberVariant || selectedPlusMemberMode === "free" /* FREE */) {
3064
3076
  return void 0;
3065
3077
  }
3066
3078
  if (selectedPlusMemberMode === "monthly" /* MONTHLY */ && hasMonthlyPlus) {
@@ -3075,15 +3087,9 @@ function usePlusMemberNeedAddToCart({
3075
3087
  if (profile?.isAnnualPlus && selectedPlusMemberMode === "annual" /* ANNUAL */) {
3076
3088
  return void 0;
3077
3089
  }
3078
- return selectedPlusMemberProduct;
3079
- }, [
3080
- selectedPlusMemberMode,
3081
- selectedPlusMemberProduct?.variant,
3082
- selectedPlusMemberProduct?.product,
3083
- hasMonthlyPlus,
3084
- hasAnnualPlus
3085
- ]);
3086
- return plusMemberProduct;
3090
+ return selectedPlusMemberVariant;
3091
+ }, [selectedPlusMemberMode, selectedPlusMemberVariant, hasMonthlyPlus, hasAnnualPlus]);
3092
+ return plusMemberVariant;
3087
3093
  }
3088
3094
  var PlusMemberProvider = ({
3089
3095
  variant,
@@ -3113,26 +3119,15 @@ var PlusMemberProvider = ({
3113
3119
  profile,
3114
3120
  isPlus: profile?.isPlus || false
3115
3121
  });
3116
- console.log("shippingMethodsContext", shippingMethodsContext);
3117
- const plusMemberHandles = react.useMemo(() => {
3118
- return [
3119
- memberSetting?.plus_monthly_product?.handle,
3120
- memberSetting?.plus_annual_product?.handle
3121
- ].filter(Boolean);
3122
- }, [memberSetting]);
3123
- const { data: plusMemberProducts = [] } = useProductsByHandles({
3124
- handles: plusMemberHandles
3122
+ const { monthlyVariant, annualVariant } = usePlusMemberVariants({
3123
+ memberSetting
3125
3124
  });
3126
- const selectedPlusMemberProduct = react.useMemo(() => {
3125
+ const selectedPlusMemberVariant = react.useMemo(() => {
3127
3126
  if (selectedPlusMemberMode === "free" /* FREE */) {
3128
- return null;
3127
+ return void 0;
3129
3128
  }
3130
- const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? memberSetting?.plus_monthly_product?.handle : memberSetting?.plus_annual_product?.handle;
3131
- const sku = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? memberSetting?.plus_monthly_product?.sku : memberSetting?.plus_annual_product?.sku;
3132
- const product2 = plusMemberProducts?.find((p) => p.handle === handle);
3133
- const variant2 = product2?.variants?.find((v) => v.sku === sku);
3134
- return product2 && variant2 ? { product: product2, variant: variant2 } : null;
3135
- }, [plusMemberProducts, memberSetting, selectedPlusMemberMode]);
3129
+ return selectedPlusMemberMode === "monthly" /* MONTHLY */ ? monthlyVariant : annualVariant;
3130
+ }, [monthlyVariant, annualVariant, selectedPlusMemberMode]);
3136
3131
  return /* @__PURE__ */ jsxRuntime.jsx(
3137
3132
  PlusMemberContext.Provider,
3138
3133
  {
@@ -3156,8 +3151,9 @@ var PlusMemberProvider = ({
3156
3151
  setShowTip,
3157
3152
  showMoreShippingMethod,
3158
3153
  setShowMoreShippingMethod,
3159
- selectedPlusMemberProduct,
3160
- plusMemberProducts,
3154
+ selectedPlusMemberVariant,
3155
+ monthlyVariant,
3156
+ annualVariant,
3161
3157
  product,
3162
3158
  showPlusMemberBenefit,
3163
3159
  setShowPlusMemberBenefit,
@@ -3391,7 +3387,11 @@ function CartProvider({
3391
3387
  refreshDeps: [locale]
3392
3388
  }
3393
3389
  );
3394
- const { trigger: updateAttributes } = useUpdateCartAttributes(mutateCart, metafieldIdentifiers);
3390
+ const { trigger: updateAttributes } = useUpdateCartAttributes({
3391
+ mutate: mutateCart,
3392
+ metafieldIdentifiers,
3393
+ disabled: isCartLoading
3394
+ });
3395
3395
  const { attributes } = useCartAttributes({ profile, customer, cart, memberSetting });
3396
3396
  ahooks.useRequest(
3397
3397
  () => {
@@ -3646,13 +3646,12 @@ exports.useExposure = useExposure;
3646
3646
  exports.useGeoLocation = useGeoLocation;
3647
3647
  exports.useHasPlusMemberInCart = useHasPlusMemberInCart;
3648
3648
  exports.useIntersection = useIntersection;
3649
- exports.usePlusAnnualProductVariant = usePlusAnnualProductVariant;
3650
3649
  exports.usePlusMemberCheckoutCustomAttributes = usePlusMemberCheckoutCustomAttributes;
3651
3650
  exports.usePlusMemberContext = usePlusMemberContext;
3652
3651
  exports.usePlusMemberDeliveryCodes = usePlusMemberDeliveryCodes;
3653
3652
  exports.usePlusMemberItemCustomAttributes = usePlusMemberItemCustomAttributes;
3654
3653
  exports.usePlusMemberNeedAddToCart = usePlusMemberNeedAddToCart;
3655
- exports.usePlusMonthlyProductVariant = usePlusMonthlyProductVariant;
3654
+ exports.usePlusMemberVariants = usePlusMemberVariants;
3656
3655
  exports.usePrice = usePrice;
3657
3656
  exports.useProduct = useProduct;
3658
3657
  exports.useProductUrl = useProductUrl;