@anker-in/shopify-react 0.1.1-beta.35 → 0.1.1-beta.36

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,7 +1,7 @@
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, 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, 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, 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';
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, 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, 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
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-BSsb8OPm.mjs';
6
6
  export * from '@anker-in/shopify-sdk';
7
7
  import 'react';
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
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, 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, 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, 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';
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, 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, 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
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-BSsb8OPm.js';
6
6
  export * from '@anker-in/shopify-sdk';
7
7
  import 'react';
package/dist/index.js CHANGED
@@ -485,54 +485,28 @@ var useCalcAutoFreeGift = (cart, autoFreeGiftConfig, customer, lines) => {
485
485
  }
486
486
  return { activeCampaign: null, subtotal: 0 };
487
487
  }, [autoFreeGiftConfig, effectiveCart, tags, dealsType]);
488
- const { qualifyingGift, nextTierGoal } = react.useMemo(() => {
488
+ const { qualifyingTier, nextTierGoal, actualThreshold, currentCurrency } = react.useMemo(() => {
489
489
  if (!activeCampaign || !activeCampaign.rule_result?.spend_get_reward?.gift_product) {
490
- return { qualifyingGift: null, nextTierGoal: null };
490
+ return { qualifyingTier: null, nextTierGoal: null, actualThreshold: 0, currentCurrency: "" };
491
491
  }
492
492
  const giftTiers = activeCampaign.rule_result.spend_get_reward.gift_product;
493
- const currentCurrency = effectiveCart?.currency?.code || "";
494
- console.log("currentCurrency useCalcAutoFreeGift", effectiveCart, currentCurrency);
493
+ const currentCurrency2 = effectiveCart?.currency?.code || "";
494
+ console.log("currentCurrency useCalcAutoFreeGift", effectiveCart, currentCurrency2);
495
495
  const getThresholdAmount = (tier) => {
496
- if (tier.spend_sum_money_multi_markets?.[currentCurrency]?.value) {
497
- return Number(tier.spend_sum_money_multi_markets[currentCurrency].value);
496
+ if (tier.spend_sum_money_multi_markets?.[currentCurrency2]?.value) {
497
+ return Number(tier.spend_sum_money_multi_markets[currentCurrency2].value);
498
498
  }
499
499
  return Number(tier.spend_sum_money || 0);
500
500
  };
501
- const qualifyingTier = [...giftTiers].sort((a, b) => getThresholdAmount(b) - getThresholdAmount(a)).find((tier) => subtotal >= getThresholdAmount(tier));
501
+ const qualifyingTier2 = [...giftTiers].sort((a, b) => getThresholdAmount(b) - getThresholdAmount(a)).find((tier) => subtotal >= getThresholdAmount(tier));
502
502
  const nextGoal = giftTiers.find((tier) => subtotal < getThresholdAmount(tier));
503
- if (!qualifyingTier) {
504
- return { qualifyingGift: null, nextTierGoal: nextGoal || null };
505
- }
506
- const actualThreshold = getThresholdAmount(qualifyingTier);
507
- const formattedGift = {
508
- tier: qualifyingTier,
509
- itemsToAdd: qualifyingTier.reward_list?.map((reward) => {
510
- const giftProduct = reward?.variant_list?.[0];
511
- if (!giftProduct) return null;
512
- return {
513
- variant: {
514
- id: shopifyCore.btoaID(giftProduct.variant_id),
515
- handle: giftProduct.handle,
516
- sku: giftProduct.sku
517
- },
518
- quantity: reward?.get_unit || 1,
519
- attributes: [
520
- {
521
- key: CUSTOMER_ATTRIBUTE_KEY,
522
- value: JSON.stringify({
523
- is_gift: true,
524
- rule_id: activeCampaign.rule_id,
525
- spend_sum_money: actualThreshold,
526
- // 使用实际的门槛金额(多币种支持)
527
- currency_code: currentCurrency
528
- // 记录当前币种
529
- })
530
- }
531
- ]
532
- };
533
- }).filter((item) => item !== null)
503
+ const actualThreshold2 = qualifyingTier2 ? getThresholdAmount(qualifyingTier2) : 0;
504
+ return {
505
+ qualifyingTier: qualifyingTier2,
506
+ nextTierGoal: nextGoal || null,
507
+ actualThreshold: actualThreshold2,
508
+ currentCurrency: currentCurrency2
534
509
  };
535
- return { qualifyingGift: formattedGift, nextTierGoal: nextGoal || null };
536
510
  }, [activeCampaign, subtotal, effectiveCart]);
537
511
  const giftHandles = react.useMemo(() => {
538
512
  const giftVariant = autoFreeGiftConfig.map(
@@ -573,6 +547,58 @@ var useCalcAutoFreeGift = (cart, autoFreeGiftConfig, customer, lines) => {
573
547
  }
574
548
  return giftProductsResult;
575
549
  }, [giftProductsResult, shouldFetch]);
550
+ const qualifyingGift = react.useMemo(() => {
551
+ if (!qualifyingTier || !activeCampaign) {
552
+ return null;
553
+ }
554
+ const itemsToAdd = qualifyingTier.reward_list?.map((reward) => {
555
+ if (!reward.variant_list || reward.variant_list.length === 0) {
556
+ return null;
557
+ }
558
+ let selectedGiftProduct = null;
559
+ for (const giftVariant of reward.variant_list) {
560
+ const productInfo = finalGiftProductsResult?.find(
561
+ (p) => p.handle === giftVariant.handle
562
+ );
563
+ if (productInfo) {
564
+ const variantInfo = productInfo.variants?.find((v) => v.sku === giftVariant.sku);
565
+ if (variantInfo?.availableForSale) {
566
+ selectedGiftProduct = giftVariant;
567
+ break;
568
+ }
569
+ }
570
+ }
571
+ if (!selectedGiftProduct) {
572
+ selectedGiftProduct = reward.variant_list[0];
573
+ }
574
+ return {
575
+ variant: {
576
+ id: shopifyCore.btoaID(selectedGiftProduct.variant_id),
577
+ handle: selectedGiftProduct.handle,
578
+ sku: selectedGiftProduct.sku
579
+ },
580
+ quantity: reward?.get_unit || 1,
581
+ attributes: [
582
+ {
583
+ key: CUSTOMER_ATTRIBUTE_KEY,
584
+ value: JSON.stringify({
585
+ is_gift: true,
586
+ rule_id: activeCampaign.rule_id,
587
+ spend_sum_money: actualThreshold,
588
+ // 使用实际的门槛金额(多币种支持)
589
+ currency_code: currentCurrency
590
+ // 记录当前币种
591
+ })
592
+ }
593
+ ]
594
+ };
595
+ }).filter((item) => item !== null);
596
+ const formattedGift = {
597
+ tier: qualifyingTier,
598
+ itemsToAdd
599
+ };
600
+ return formattedGift;
601
+ }, [qualifyingTier, activeCampaign, finalGiftProductsResult, actualThreshold, currentCurrency]);
576
602
  return {
577
603
  qualifyingGift,
578
604
  nextTierGoal,
@@ -2539,15 +2565,27 @@ function usePlusAnnualProductVariant() {
2539
2565
  }, [plusMemberProducts, plusAnnual]);
2540
2566
  return plusAnnualProductVariant;
2541
2567
  }
2542
- function useShippingMethods(options) {
2543
- const {
2544
- variant,
2545
- plusMemberMetafields,
2546
- selectedPlusMemberMode,
2547
- isPlus = false,
2568
+ var useAvailableDeliveryCoupon = ({ profile }) => {
2569
+ const { data: availableDeliveryCoupon, isLoading } = useSWR__default.default(
2570
+ profile?.email ? ["/api/multipass/subsrv/v1/prime/delivery_coupons/current/available", profile?.email] : void 0,
2571
+ async ([apiPath]) => {
2572
+ return fetch(apiPath).then((res) => res.json());
2573
+ }
2574
+ );
2575
+ console.log("availableDeliveryCoupon", availableDeliveryCoupon);
2576
+ const { ndd_coupon: nddCoupon, tdd_coupon: tddCoupon } = availableDeliveryCoupon?.data?.data || {};
2577
+ return {
2548
2578
  nddCoupon,
2549
- tddCoupon
2550
- } = options;
2579
+ tddCoupon,
2580
+ isLoading
2581
+ };
2582
+ };
2583
+
2584
+ // src/hooks/member/plus/use-shipping-methods.ts
2585
+ function useShippingMethods(options) {
2586
+ const { variant, plusMemberMetafields, selectedPlusMemberMode, isPlus = false, profile } = options;
2587
+ const { nddCoupon, tddCoupon, isLoading } = useAvailableDeliveryCoupon({ profile });
2588
+ console.log("nddCoupon", nddCoupon);
2551
2589
  const { plus_shipping, shippingMethod } = plusMemberMetafields || {};
2552
2590
  const nddOverweight = react.useMemo(() => {
2553
2591
  return (variant?.weight || 0) > (shippingMethod?.overWeight_ndd || Infinity);
@@ -2557,12 +2595,10 @@ function useShippingMethods(options) {
2557
2595
  }, [shippingMethod?.overWeight_tdd, variant?.weight]);
2558
2596
  const paymentShippingMethods = react.useMemo(() => {
2559
2597
  const weight = variant?.weight || 0;
2560
- const methods = plus_shipping?.shipping_methods?.filter(
2561
- ({ weight_low, weight_high, __mode, __plus }) => {
2562
- const fitWeight = (!weight_low || weight >= weight_low) && (!weight_high || weight <= weight_high);
2563
- return __mode !== "free" /* FREE */ && !__plus && fitWeight;
2564
- }
2565
- ) || [];
2598
+ const methods = plus_shipping?.shipping_methods?.filter(({ weight_low, weight_high, __mode, __plus }) => {
2599
+ const fitWeight = (!weight_low || weight >= weight_low) && (!weight_high || weight <= weight_high);
2600
+ return __mode !== "free" /* FREE */ && !__plus && fitWeight;
2601
+ }) || [];
2566
2602
  return methods.map((method) => {
2567
2603
  let disabled = false;
2568
2604
  const selectedFreeMember = selectedPlusMemberMode === "free";
@@ -2589,40 +2625,34 @@ function useShippingMethods(options) {
2589
2625
  ]);
2590
2626
  const nddPrice = react.useMemo(() => {
2591
2627
  const weight = variant?.weight || 0;
2592
- const nddMethod = paymentShippingMethods.find(
2593
- ({ __mode, weight_high, weight_low }) => {
2594
- const fitWeight = (!weight_low || weight >= weight_low) && (!weight_high || weight <= weight_high);
2595
- return __mode === "ndd" && fitWeight;
2596
- }
2597
- );
2628
+ const nddMethod = paymentShippingMethods.find(({ __mode, weight_high, weight_low }) => {
2629
+ const fitWeight = (!weight_low || weight >= weight_low) && (!weight_high || weight <= weight_high);
2630
+ return __mode === "ndd" && fitWeight;
2631
+ });
2598
2632
  return nddMethod?.price || 0;
2599
2633
  }, [variant?.weight, paymentShippingMethods]);
2600
2634
  const tddPrice = react.useMemo(() => {
2601
2635
  const weight = variant?.weight || 0;
2602
- const tddMethod = paymentShippingMethods.find(
2603
- ({ __mode, weight_high, weight_low }) => {
2604
- const fitWeight = (!weight_low || weight >= weight_low) && (!weight_high || weight <= weight_high);
2605
- return __mode === "tdd" && fitWeight;
2606
- }
2607
- );
2636
+ const tddMethod = paymentShippingMethods.find(({ __mode, weight_high, weight_low }) => {
2637
+ const fitWeight = (!weight_low || weight >= weight_low) && (!weight_high || weight <= weight_high);
2638
+ return __mode === "tdd" && fitWeight;
2639
+ });
2608
2640
  return tddMethod?.price || 0;
2609
2641
  }, [variant?.weight, paymentShippingMethods]);
2610
2642
  const freeShippingMethods = react.useMemo(() => {
2611
2643
  const weight = variant?.weight || 0;
2612
- let methods = plus_shipping?.shipping_methods?.filter(
2613
- ({ __mode, __plus, weight_low, weight_high }) => {
2614
- if (__mode === "free" /* FREE */) {
2615
- return true;
2616
- }
2617
- if (isPlus) {
2618
- const hasCoupon = isPlus && __mode === "ndd" /* NDD */ && nddCoupon || isPlus && __mode === "tdd" /* TDD */ && (tddCoupon || nddCoupon);
2619
- const fitWeight = (!weight_low || weight >= weight_low) && (!weight_high || weight <= weight_high);
2620
- return hasCoupon && fitWeight && !__plus;
2621
- } else {
2622
- return __plus;
2623
- }
2644
+ let methods = plus_shipping?.shipping_methods?.filter(({ __mode, __plus, weight_low, weight_high }) => {
2645
+ if (__mode === "free" /* FREE */) {
2646
+ return true;
2624
2647
  }
2625
- ) || [];
2648
+ if (isPlus) {
2649
+ const hasCoupon = isPlus && __mode === "ndd" /* NDD */ && nddCoupon || isPlus && __mode === "tdd" /* TDD */ && (tddCoupon || nddCoupon);
2650
+ const fitWeight = (!weight_low || weight >= weight_low) && (!weight_high || weight <= weight_high);
2651
+ return hasCoupon && fitWeight && !__plus;
2652
+ } else {
2653
+ return __plus;
2654
+ }
2655
+ }) || [];
2626
2656
  if (isPlus) {
2627
2657
  methods = methods.sort((a, b) => {
2628
2658
  if (b.__mode === "free" /* FREE */) return -1;
@@ -2676,7 +2706,10 @@ function useShippingMethods(options) {
2676
2706
  freeShippingMethods,
2677
2707
  paymentShippingMethods,
2678
2708
  nddOverweight,
2679
- tddOverweight
2709
+ tddOverweight,
2710
+ nddCoupon,
2711
+ tddCoupon,
2712
+ isLoadingCoupon: isLoading
2680
2713
  };
2681
2714
  }
2682
2715
  function useShippingMethodAvailableCheck() {
@@ -2966,9 +2999,9 @@ var PlusMemberProvider = ({
2966
2999
  memberSetting,
2967
3000
  initialSelectedPlusMemberMode = "free",
2968
3001
  profile,
2969
- locale,
2970
3002
  children
2971
3003
  }) => {
3004
+ const { locale } = useShopify();
2972
3005
  const [zipCode, setZipCode] = react.useState("");
2973
3006
  const [showTip, setShowTip] = react.useState(false);
2974
3007
  const [selectedPlusMemberMode, setSelectedPlusMemberMode] = react.useState(
@@ -2984,7 +3017,11 @@ var PlusMemberProvider = ({
2984
3017
  const shippingMethodsContext = useShippingMethods({
2985
3018
  variant,
2986
3019
  plusMemberMetafields: memberSetting,
2987
- selectedPlusMemberMode});
3020
+ selectedPlusMemberMode,
3021
+ profile,
3022
+ isPlus: profile?.isPlus || false
3023
+ });
3024
+ console.log("shippingMethodsContext", shippingMethodsContext);
2988
3025
  const plusMemberHandles = react.useMemo(() => {
2989
3026
  return [
2990
3027
  memberSetting?.plus_monthly_product?.handle,
@@ -3500,6 +3537,7 @@ exports.useArticle = useArticle;
3500
3537
  exports.useArticles = useArticles;
3501
3538
  exports.useArticlesInBlog = useArticlesInBlog;
3502
3539
  exports.useAutoRemovePlusMemberInCart = useAutoRemovePlusMemberInCart;
3540
+ exports.useAvailableDeliveryCoupon = useAvailableDeliveryCoupon;
3503
3541
  exports.useBlog = useBlog;
3504
3542
  exports.useBuyNow = useBuyNow;
3505
3543
  exports.useCalcAutoFreeGift = useCalcAutoFreeGift;