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

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.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();
@@ -1566,36 +1573,46 @@ var useCalcOrderDiscount = (cart, orderDiscountConfig, customer) => {
1566
1573
  isLoading: isCustomerLoading
1567
1574
  };
1568
1575
  };
1569
- function useHasPlusMemberInCart({
1576
+ function hasPlusMemberInCart({
1570
1577
  memberSetting,
1571
1578
  cart
1572
1579
  }) {
1573
1580
  const { plus_monthly_product, plus_annual_product } = memberSetting || {};
1574
- return react.useMemo(() => {
1575
- if (!cart?.lineItems) {
1576
- return {
1577
- hasPlusMember: false,
1578
- hasMonthlyPlus: false,
1579
- hasAnnualPlus: false
1580
- };
1581
- }
1582
- const monthlyPlusItem = cart.lineItems.find(
1583
- (item) => item.product?.handle === plus_monthly_product?.handle && item.variant?.sku === plus_monthly_product?.sku
1584
- );
1585
- const annualPlusItem = cart.lineItems.find(
1586
- (item) => item.product?.handle === plus_annual_product?.handle && item.variant?.sku === plus_annual_product?.sku
1587
- );
1588
- const hasMonthlyPlus = !!monthlyPlusItem;
1589
- const hasAnnualPlus = !!annualPlusItem;
1590
- const hasPlusMember = hasMonthlyPlus || hasAnnualPlus;
1581
+ if (!cart?.lineItems) {
1591
1582
  return {
1592
- hasPlusMember,
1593
- hasMonthlyPlus,
1594
- hasAnnualPlus,
1595
- monthlyPlusItem,
1596
- annualPlusItem
1583
+ hasPlusMember: false,
1584
+ hasMonthlyPlus: false,
1585
+ hasAnnualPlus: false
1597
1586
  };
1598
- }, [cart?.lineItems, plus_monthly_product, plus_annual_product]);
1587
+ }
1588
+ const monthlyPlusItem = cart.lineItems.find(
1589
+ (item) => item.product?.handle === plus_monthly_product?.handle && item.variant?.sku === plus_monthly_product?.sku
1590
+ );
1591
+ const annualPlusItem = cart.lineItems.find(
1592
+ (item) => item.product?.handle === plus_annual_product?.handle && item.variant?.sku === plus_annual_product?.sku
1593
+ );
1594
+ const hasMonthlyPlus = !!monthlyPlusItem;
1595
+ const hasAnnualPlus = !!annualPlusItem;
1596
+ const hasPlusMember = hasMonthlyPlus || hasAnnualPlus;
1597
+ return {
1598
+ hasPlusMember,
1599
+ hasMonthlyPlus,
1600
+ hasAnnualPlus,
1601
+ monthlyPlusItem,
1602
+ annualPlusItem
1603
+ };
1604
+ }
1605
+ function useHasPlusMemberInCart({
1606
+ memberSetting,
1607
+ cart
1608
+ }) {
1609
+ return react.useMemo(
1610
+ () => hasPlusMemberInCart({
1611
+ memberSetting,
1612
+ cart
1613
+ }),
1614
+ [memberSetting, cart]
1615
+ );
1599
1616
  }
1600
1617
  var getReferralAttributes = () => {
1601
1618
  const inviteCode = shopifySdk.getLocalStorage("inviteCode") || Cookies5__default.default.get("inviteCode");
@@ -1692,7 +1709,7 @@ var useCartAttributes = ({
1692
1709
  })
1693
1710
  }
1694
1711
  ] : [];
1695
- }, [cart]);
1712
+ }, [cart, customer]);
1696
1713
  const presellAttributes = react.useMemo(() => {
1697
1714
  return [
1698
1715
  {
@@ -1756,9 +1773,7 @@ var useCartAttributes = ({
1756
1773
  "_play_mode_id",
1757
1774
  "_popup"
1758
1775
  ];
1759
- return cart?.customAttributes?.filter(
1760
- (item) => !commonAttributeKeys.includes(item.key)
1761
- ) || [];
1776
+ return cart?.customAttributes?.filter((item) => !commonAttributeKeys.includes(item.key)) || [];
1762
1777
  }, [cart]);
1763
1778
  return react.useMemo(
1764
1779
  () => ({
@@ -2576,28 +2591,13 @@ var ShippingMethodMode = /* @__PURE__ */ ((ShippingMethodMode2) => {
2576
2591
  return ShippingMethodMode2;
2577
2592
  })(ShippingMethodMode || {});
2578
2593
  var createInitialValue = () => ({
2579
- zipCode: "",
2580
2594
  plusMemberMetafields: {},
2581
- setZipCode: () => {
2582
- },
2583
- allowNextDayDelivery: false,
2584
- setAllowNextDayDelivery: () => {
2585
- },
2586
- allowThirdDayDelivery: false,
2587
- setAllowThirdDayDelivery: () => {
2588
- },
2589
2595
  selectedPlusMemberMode: "free",
2590
2596
  setSelectedPlusMemberMode: () => {
2591
2597
  },
2592
- showAreaCheckModal: false,
2593
- setShowAreaCheckModal: () => {
2594
- },
2595
2598
  selectedShippingMethod: void 0,
2596
2599
  setSelectedShippingMethod: () => {
2597
2600
  },
2598
- showTip: false,
2599
- setShowTip: () => {
2600
- },
2601
2601
  showMoreShippingMethod: false,
2602
2602
  setShowMoreShippingMethod: () => {
2603
2603
  },
@@ -2612,48 +2612,49 @@ var createInitialValue = () => ({
2612
2612
  tddCoupon: void 0,
2613
2613
  isLoadingCoupon: false
2614
2614
  },
2615
- selectedPlusMemberProduct: null,
2616
- plusMemberProducts: [],
2615
+ selectedPlusMemberVariant: void 0,
2617
2616
  showPlusMemberBenefit: false,
2618
2617
  setShowPlusMemberBenefit: () => {
2619
2618
  },
2620
- deleteMarginBottom: false,
2621
- setDeleteMarginBottom: () => {
2622
- },
2623
- profile: void 0,
2624
- locale: void 0
2619
+ profile: void 0
2625
2620
  });
2626
2621
  var PlusMemberContext = react.createContext(createInitialValue());
2627
2622
  function usePlusMemberContext() {
2628
2623
  return react.useContext(PlusMemberContext);
2629
2624
  }
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;
2625
+ function usePlusMemberVariants({
2626
+ memberSetting
2627
+ }) {
2628
+ const plusMonthly = memberSetting?.plus_monthly_product;
2629
+ const plusAnnual = memberSetting?.plus_annual_product;
2630
+ const plusMemberHandles = react.useMemo(() => {
2631
+ return [plusMonthly?.handle, plusAnnual?.handle].filter(Boolean);
2632
+ }, [plusMonthly?.handle, plusAnnual?.handle]);
2633
+ const { data: plusMemberProducts = [] } = useProductsByHandles({
2634
+ handles: plusMemberHandles
2635
+ });
2636
+ const monthlyProduct = react.useMemo(() => {
2637
+ return plusMemberProducts?.find((item) => item?.handle === plusMonthly?.handle);
2641
2638
  }, [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;
2639
+ const annualProduct = react.useMemo(() => {
2640
+ return plusMemberProducts?.find((item) => item?.handle === plusAnnual?.handle);
2655
2641
  }, [plusMemberProducts, plusAnnual]);
2656
- return plusAnnualProductVariant;
2642
+ const monthlyVariant = react.useMemo(() => {
2643
+ return monthlyProduct?.variants?.find((item) => item.sku === plusMonthly?.sku);
2644
+ }, [monthlyProduct, plusMonthly]);
2645
+ const annualVariant = react.useMemo(() => {
2646
+ return annualProduct?.variants?.find((item) => item.sku === plusAnnual?.sku);
2647
+ }, [annualProduct, plusAnnual]);
2648
+ return {
2649
+ monthlyVariant: monthlyVariant ? {
2650
+ ...monthlyVariant,
2651
+ product: monthlyProduct
2652
+ } : void 0,
2653
+ annualVariant: annualVariant ? {
2654
+ ...annualVariant,
2655
+ product: annualProduct
2656
+ } : void 0
2657
+ };
2657
2658
  }
2658
2659
  var useAvailableDeliveryCoupon = ({
2659
2660
  profile
@@ -2675,9 +2676,9 @@ var useAvailableDeliveryCoupon = ({
2675
2676
 
2676
2677
  // src/hooks/member/plus/use-shipping-methods.ts
2677
2678
  function useShippingMethods(options) {
2678
- const { variant, plusMemberMetafields, selectedPlusMemberMode, isPlus = false, profile } = options;
2679
+ const { variant, plusMemberMetafields, selectedPlusMemberMode, profile } = options;
2680
+ const isPlus = profile?.isPlus || false;
2679
2681
  const { nddCoupon, tddCoupon, isLoading } = useAvailableDeliveryCoupon({ profile });
2680
- console.log("nddCoupon", nddCoupon);
2681
2682
  const { plus_shipping, shippingMethod } = plusMemberMetafields || {};
2682
2683
  const nddOverweight = react.useMemo(() => {
2683
2684
  return (variant?.weight || 0) > (shippingMethod?.overWeight_ndd || Infinity);
@@ -2804,69 +2805,6 @@ function useShippingMethods(options) {
2804
2805
  isLoadingCoupon: isLoading
2805
2806
  };
2806
2807
  }
2807
- function useShippingMethodAvailableCheck() {
2808
- const {
2809
- zipCode,
2810
- allowNextDayDelivery,
2811
- allowThirdDayDelivery,
2812
- selectedShippingMethod,
2813
- setSelectedShippingMethod,
2814
- setShowTip,
2815
- shippingMethodsContext
2816
- } = usePlusMemberContext();
2817
- react.useEffect(() => {
2818
- const freeShippingMethod = shippingMethodsContext.freeShippingMethods[0];
2819
- const standardShippingMethod = shippingMethodsContext.freeShippingMethods?.find(
2820
- (item) => item.__mode === "free" /* FREE */
2821
- );
2822
- const freeTDD = shippingMethodsContext.freeShippingMethods.find(
2823
- (item) => item.__mode === "tdd" /* TDD */
2824
- );
2825
- const paymentTDD = shippingMethodsContext.paymentShippingMethods.find(
2826
- (item) => item.__mode === "tdd" /* TDD */
2827
- );
2828
- if (zipCode) {
2829
- console.log(
2830
- "allowNextDayDelivery, allowThirdDayDelivery:",
2831
- allowNextDayDelivery,
2832
- allowThirdDayDelivery
2833
- );
2834
- if (!allowNextDayDelivery && !allowThirdDayDelivery) {
2835
- setShowTip(true);
2836
- setSelectedShippingMethod(standardShippingMethod);
2837
- } else {
2838
- if (selectedShippingMethod?.__mode === "ndd" /* NDD */ && !allowNextDayDelivery) {
2839
- setShowTip(true);
2840
- if (allowThirdDayDelivery) {
2841
- if (selectedShippingMethod.useCoupon) {
2842
- const method = freeTDD || freeShippingMethod;
2843
- if (method) setSelectedShippingMethod(method);
2844
- } else {
2845
- const method = paymentTDD || freeShippingMethod;
2846
- if (method) setSelectedShippingMethod(method);
2847
- }
2848
- } else {
2849
- if (freeShippingMethod) setSelectedShippingMethod(freeShippingMethod);
2850
- }
2851
- } else if (
2852
- // TDD 无法使用
2853
- selectedShippingMethod?.__mode === "tdd" /* TDD */ && !allowThirdDayDelivery
2854
- ) {
2855
- setShowTip(true);
2856
- if (freeShippingMethod) setSelectedShippingMethod(freeShippingMethod);
2857
- }
2858
- }
2859
- }
2860
- }, [
2861
- allowNextDayDelivery,
2862
- allowThirdDayDelivery,
2863
- zipCode,
2864
- shippingMethodsContext,
2865
- selectedShippingMethod,
2866
- setSelectedShippingMethod,
2867
- setShowTip
2868
- ]);
2869
- }
2870
2808
  var useReplaceCartPlusMember = () => {
2871
2809
  const { plusMemberMetafields, selectedPlusMemberMode } = usePlusMemberContext();
2872
2810
  const { trigger: removeCartLines2 } = useRemoveCartLines();
@@ -2898,129 +2836,45 @@ var useReplaceCartPlusMember = () => {
2898
2836
  ]);
2899
2837
  return handler;
2900
2838
  };
2901
- var usePlusMemberDeliveryCodes = ({
2902
- deliveryData
2903
- }) => {
2904
- return react.useMemo(
2905
- () => deliveryData?.deliveryCustomData?.discount_code,
2906
- [deliveryData]
2907
- );
2908
- };
2909
- function useUpdateCartDeliveryOptions(mutate, metafieldIdentifiers, options) {
2910
- const { client, locale, cartCookieAdapter } = useShopify();
2911
- const updateDeliveryOptions = react.useCallback(
2912
- async (_key, { arg }) => {
2913
- const updatedCart = await shopifySdk.updateCartDeliveryOptions(client, {
2914
- ...arg,
2915
- metafieldIdentifiers,
2916
- cookieAdapter: cartCookieAdapter
2917
- });
2918
- console.log("useUpdateCartDeliveryOptions updatedCart", updatedCart);
2919
- if (updatedCart) {
2920
- mutate(updatedCart);
2921
- }
2922
- return updatedCart;
2923
- },
2924
- [client, locale, cartCookieAdapter, mutate, metafieldIdentifiers]
2925
- );
2926
- return useSWRMutation__default.default("update-cart-delivery-options", updateDeliveryOptions, options);
2927
- }
2928
-
2929
- // src/hooks/member/plus/use-update-plus-member-delivery-options.ts
2930
- var useUpdatePlusMemberDeliveryOptions = ({
2931
- options
2932
- } = {}) => {
2933
- const { cart: cartContextData, mutateCart, metafieldIdentifiers } = useCartContext();
2934
- const { trigger: updateCartDeliveryOptions2 } = useUpdateCartDeliveryOptions(
2935
- mutateCart,
2936
- metafieldIdentifiers
2937
- );
2938
- const handler = react.useCallback(
2939
- async (_, { arg }) => {
2940
- const currentCart = arg?.cart || cartContextData;
2941
- const { deliveryData } = arg;
2942
- const firstDeliveryGroup = currentCart?.deliveryGroups?.[0];
2943
- const deliveryGroupId = firstDeliveryGroup?.id;
2944
- const selectedOptionCode = deliveryData?.deliveryCustomData?.selected_delivery_option?.code;
2945
- if (!deliveryGroupId || !selectedOptionCode || selectedOptionCode === firstDeliveryGroup?.selectedDeliveryOption?.code) {
2946
- return null;
2947
- }
2948
- const deliveryGroup = currentCart?.deliveryGroups?.find(
2949
- (group) => group?.id === deliveryGroupId
2950
- );
2951
- const matchedOption = deliveryGroup?.deliveryOptions?.find(
2952
- (option) => option?.code === selectedOptionCode
2953
- );
2954
- if (!matchedOption?.handle) {
2955
- return null;
2956
- }
2957
- const deliveryOptions = [
2958
- {
2959
- deliveryGroupId,
2960
- deliveryOptionHandle: matchedOption.handle
2961
- }
2962
- ];
2963
- const updatedCart = await updateCartDeliveryOptions2({
2964
- selectedDeliveryOptions: deliveryOptions,
2965
- cartId: currentCart?.id
2966
- });
2967
- if (updatedCart && mutateCart) {
2968
- mutateCart(updatedCart);
2969
- }
2970
- return updatedCart;
2971
- },
2972
- [cartContextData, updateCartDeliveryOptions2, mutateCart]
2973
- );
2974
- return useSWRMutation__default.default("update-cart-delivery-options", handler, options);
2975
- };
2976
- var usePlusMemberItemCustomAttributes = ({
2977
- deliveryData
2978
- }) => {
2979
- const { deliveryCustomData } = deliveryData || {};
2980
- return react.useMemo(() => {
2981
- const itemCustomAttributes = [];
2982
- if (deliveryCustomData?.is_presale) {
2983
- itemCustomAttributes.push({
2984
- key: "_is_presale",
2985
- value: "true"
2986
- });
2987
- }
2988
- return itemCustomAttributes;
2989
- }, [deliveryCustomData]);
2839
+ var usePlusMemberDeliveryCodes = () => {
2840
+ const { selectedShippingMethod } = usePlusMemberContext();
2841
+ return react.useMemo(() => [selectedShippingMethod?.coupon], [selectedShippingMethod?.coupon]);
2990
2842
  };
2991
2843
  var usePlusMemberCheckoutCustomAttributes = ({
2992
- deliveryData,
2993
- product,
2994
- variant,
2995
- isShowShippingBenefits
2844
+ disableShipping = false,
2845
+ isPresaleContains = false
2996
2846
  }) => {
2997
- const { deliveryCustomData } = deliveryData || {};
2998
- const { profile } = usePlusMemberContext();
2847
+ const { profile, selectedShippingMethod, selectedPlusMemberMode } = usePlusMemberContext();
2999
2848
  return react.useMemo(() => {
3000
2849
  const checkoutCustomAttributes = [
3001
- // _last_url: 付费会员结算完成之后 checkout 有一个继续购买的按钮, 用于跳转到继续购买的页面
3002
2850
  {
3003
2851
  key: "_last_url",
3004
2852
  value: typeof window !== "undefined" ? window.location.origin + window.location.pathname : ""
3005
2853
  }
3006
2854
  ];
3007
- if (deliveryCustomData) {
3008
- checkoutCustomAttributes.push({
3009
- key: "_checkout_delivery_custom",
3010
- value: JSON.stringify({
3011
- ...deliveryCustomData,
3012
- is_prime: profile?.isPlus
3013
- })
3014
- });
3015
- }
3016
- if (isShowShippingBenefits && !isShowShippingBenefits({ variant, product, setting: {} })) {
2855
+ checkoutCustomAttributes.push({
2856
+ key: "_checkout_delivery_custom",
2857
+ value: JSON.stringify({
2858
+ allow_nextday_delivery: true,
2859
+ allow_thirdday_delivery: true,
2860
+ selected_delivery_option: {
2861
+ code: selectedShippingMethod?.__code,
2862
+ mode: selectedShippingMethod?.__mode
2863
+ },
2864
+ is_presale: isPresaleContains,
2865
+ discount_code: selectedShippingMethod?.coupon ? [selectedShippingMethod.coupon] : [],
2866
+ plus_type: profile?.isPlus ? "free" /* FREE */ : selectedPlusMemberMode,
2867
+ is_prime: profile?.isPlus
2868
+ })
2869
+ });
2870
+ if (disableShipping) {
3017
2871
  checkoutCustomAttributes.push({
3018
2872
  key: "_hide_shipping",
3019
2873
  value: "true"
3020
2874
  });
3021
2875
  }
3022
2876
  return checkoutCustomAttributes;
3023
- }, [deliveryCustomData, product, profile, variant, isShowShippingBenefits]);
2877
+ }, [profile, selectedShippingMethod, selectedPlusMemberMode, isPresaleContains]);
3024
2878
  };
3025
2879
  function useAutoRemovePlusMemberInCart({
3026
2880
  cart,
@@ -3054,13 +2908,13 @@ function usePlusMemberNeedAddToCart({
3054
2908
  cart,
3055
2909
  profile
3056
2910
  }) {
3057
- const { selectedPlusMemberMode, selectedPlusMemberProduct, plusMemberMetafields } = usePlusMemberContext();
2911
+ const { selectedPlusMemberMode, selectedPlusMemberVariant, plusMemberMetafields } = usePlusMemberContext();
3058
2912
  const { hasMonthlyPlus, hasAnnualPlus } = useHasPlusMemberInCart({
3059
2913
  memberSetting: plusMemberMetafields,
3060
2914
  cart
3061
2915
  });
3062
- const plusMemberProduct = react.useMemo(() => {
3063
- if (!selectedPlusMemberProduct || selectedPlusMemberMode === "free" /* FREE */) {
2916
+ const plusMemberVariant = react.useMemo(() => {
2917
+ if (!selectedPlusMemberVariant || selectedPlusMemberMode === "free" /* FREE */) {
3064
2918
  return void 0;
3065
2919
  }
3066
2920
  if (selectedPlusMemberMode === "monthly" /* MONTHLY */ && hasMonthlyPlus) {
@@ -3075,15 +2929,9 @@ function usePlusMemberNeedAddToCart({
3075
2929
  if (profile?.isAnnualPlus && selectedPlusMemberMode === "annual" /* ANNUAL */) {
3076
2930
  return void 0;
3077
2931
  }
3078
- return selectedPlusMemberProduct;
3079
- }, [
3080
- selectedPlusMemberMode,
3081
- selectedPlusMemberProduct?.variant,
3082
- selectedPlusMemberProduct?.product,
3083
- hasMonthlyPlus,
3084
- hasAnnualPlus
3085
- ]);
3086
- return plusMemberProduct;
2932
+ return selectedPlusMemberVariant;
2933
+ }, [selectedPlusMemberMode, selectedPlusMemberVariant, hasMonthlyPlus, hasAnnualPlus]);
2934
+ return plusMemberVariant;
3087
2935
  }
3088
2936
  var PlusMemberProvider = ({
3089
2937
  variant,
@@ -3093,78 +2941,45 @@ var PlusMemberProvider = ({
3093
2941
  profile,
3094
2942
  children
3095
2943
  }) => {
3096
- const { locale } = useShopify();
3097
- const [zipCode, setZipCode] = react.useState("");
3098
- const [showTip, setShowTip] = react.useState(false);
3099
2944
  const [selectedPlusMemberMode, setSelectedPlusMemberMode] = react.useState(
3100
2945
  initialSelectedPlusMemberMode
3101
2946
  );
3102
2947
  const [selectedShippingMethod, setSelectedShippingMethod] = react.useState();
3103
- const [allowNextDayDelivery, setAllowNextDayDelivery] = react.useState(false);
3104
- const [allowThirdDayDelivery, setAllowThirdDayDelivery] = react.useState(false);
3105
- const [showAreaCheckModal, setShowAreaCheckModal] = react.useState(false);
3106
2948
  const [showMoreShippingMethod, setShowMoreShippingMethod] = react.useState(false);
3107
2949
  const [showPlusMemberBenefit, setShowPlusMemberBenefit] = react.useState(false);
3108
- const [deleteMarginBottom, setDeleteMarginBottom] = react.useState(false);
3109
2950
  const shippingMethodsContext = useShippingMethods({
3110
2951
  variant,
3111
2952
  plusMemberMetafields: memberSetting,
3112
2953
  selectedPlusMemberMode,
3113
- profile,
3114
- isPlus: profile?.isPlus || false
2954
+ profile
3115
2955
  });
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
2956
+ const { monthlyVariant, annualVariant } = usePlusMemberVariants({
2957
+ memberSetting
3125
2958
  });
3126
- const selectedPlusMemberProduct = react.useMemo(() => {
2959
+ const selectedPlusMemberVariant = react.useMemo(() => {
3127
2960
  if (selectedPlusMemberMode === "free" /* FREE */) {
3128
- return null;
2961
+ return void 0;
3129
2962
  }
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]);
2963
+ return selectedPlusMemberMode === "monthly" /* MONTHLY */ ? monthlyVariant : annualVariant;
2964
+ }, [monthlyVariant, annualVariant, selectedPlusMemberMode]);
3136
2965
  return /* @__PURE__ */ jsxRuntime.jsx(
3137
2966
  PlusMemberContext.Provider,
3138
2967
  {
3139
2968
  value: {
3140
2969
  variant,
3141
- zipCode,
3142
- setZipCode,
3143
- allowNextDayDelivery,
3144
- setAllowNextDayDelivery,
3145
- allowThirdDayDelivery,
3146
- setAllowThirdDayDelivery,
3147
2970
  plusMemberMetafields: memberSetting,
3148
2971
  selectedPlusMemberMode,
3149
2972
  setSelectedPlusMemberMode,
3150
- showAreaCheckModal,
3151
- setShowAreaCheckModal,
3152
2973
  selectedShippingMethod,
3153
2974
  setSelectedShippingMethod,
3154
2975
  shippingMethodsContext,
3155
- showTip,
3156
- setShowTip,
3157
2976
  showMoreShippingMethod,
3158
2977
  setShowMoreShippingMethod,
3159
- selectedPlusMemberProduct,
3160
- plusMemberProducts,
2978
+ selectedPlusMemberVariant,
3161
2979
  product,
3162
2980
  showPlusMemberBenefit,
3163
2981
  setShowPlusMemberBenefit,
3164
- deleteMarginBottom,
3165
- setDeleteMarginBottom,
3166
- profile,
3167
- locale
2982
+ profile
3168
2983
  },
3169
2984
  children
3170
2985
  }
@@ -3391,7 +3206,11 @@ function CartProvider({
3391
3206
  refreshDeps: [locale]
3392
3207
  }
3393
3208
  );
3394
- const { trigger: updateAttributes } = useUpdateCartAttributes(mutateCart, metafieldIdentifiers);
3209
+ const { trigger: updateAttributes } = useUpdateCartAttributes({
3210
+ mutate: mutateCart,
3211
+ metafieldIdentifiers,
3212
+ disabled: isCartLoading
3213
+ });
3395
3214
  const { attributes } = useCartAttributes({ profile, customer, cart, memberSetting });
3396
3215
  ahooks.useRequest(
3397
3216
  () => {
@@ -3612,6 +3431,7 @@ exports.getDiscountEnvAttributeValue = getDiscountEnvAttributeValue;
3612
3431
  exports.getMatchedMainProductSubTotal = getMatchedMainProductSubTotal;
3613
3432
  exports.getQuery = getQuery;
3614
3433
  exports.getReferralAttributes = getReferralAttributes;
3434
+ exports.hasPlusMemberInCart = hasPlusMemberInCart;
3615
3435
  exports.normalizeAddToCartLines = normalizeAddToCartLines;
3616
3436
  exports.preCheck = preCheck;
3617
3437
  exports.safeParse = safeParse;
@@ -3646,13 +3466,11 @@ exports.useExposure = useExposure;
3646
3466
  exports.useGeoLocation = useGeoLocation;
3647
3467
  exports.useHasPlusMemberInCart = useHasPlusMemberInCart;
3648
3468
  exports.useIntersection = useIntersection;
3649
- exports.usePlusAnnualProductVariant = usePlusAnnualProductVariant;
3650
3469
  exports.usePlusMemberCheckoutCustomAttributes = usePlusMemberCheckoutCustomAttributes;
3651
3470
  exports.usePlusMemberContext = usePlusMemberContext;
3652
3471
  exports.usePlusMemberDeliveryCodes = usePlusMemberDeliveryCodes;
3653
- exports.usePlusMemberItemCustomAttributes = usePlusMemberItemCustomAttributes;
3654
3472
  exports.usePlusMemberNeedAddToCart = usePlusMemberNeedAddToCart;
3655
- exports.usePlusMonthlyProductVariant = usePlusMonthlyProductVariant;
3473
+ exports.usePlusMemberVariants = usePlusMemberVariants;
3656
3474
  exports.usePrice = usePrice;
3657
3475
  exports.useProduct = useProduct;
3658
3476
  exports.useProductUrl = useProductUrl;
@@ -3663,14 +3481,12 @@ exports.useReplaceCartPlusMember = useReplaceCartPlusMember;
3663
3481
  exports.useScriptAutoFreeGift = useScriptAutoFreeGift;
3664
3482
  exports.useSearch = useSearch;
3665
3483
  exports.useSelectedOptions = useSelectedOptions;
3666
- exports.useShippingMethodAvailableCheck = useShippingMethodAvailableCheck;
3667
3484
  exports.useShippingMethods = useShippingMethods;
3668
3485
  exports.useShopify = useShopify;
3669
3486
  exports.useSite = useSite;
3670
3487
  exports.useUpdateCartAttributes = useUpdateCartAttributes;
3671
3488
  exports.useUpdateCartLines = useUpdateCartLines;
3672
3489
  exports.useUpdateLineCodeAmountAttributes = useUpdateLineCodeAmountAttributes;
3673
- exports.useUpdatePlusMemberDeliveryOptions = useUpdatePlusMemberDeliveryOptions;
3674
3490
  exports.useUpdateVariantQuery = useUpdateVariantQuery;
3675
3491
  exports.useVariant = useVariant;
3676
3492
  exports.useVariantMedia = useVariantMedia;