@anker-in/shopify-react 0.1.1-beta.7 → 0.1.1-beta.9

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.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createContext, useMemo, useContext, useRef, useState, useEffect, useCallback } from 'react';
2
- import { createShopifyClient, getProductsByHandles, createCart, updateCartCodes, addCartLines, updateCartLines, removeCartLines, updateCartAttributes, getProduct, getAllProducts, getCollection, getAllCollections, getCollections, getBlog, getAllBlogs, getArticle, getArticles, getArticlesInBlog, getLocalStorage, getCart, setLocalStorage } from '@anker-in/shopify-sdk';
2
+ import { createShopifyClient, getProductsByHandles, createCart, updateCartCodes, addCartLines, updateCartLines, removeCartLines, updateCartAttributes, getProduct, getAllProducts, getCollection, getAllCollections, getCollections, getBlog, getAllBlogs, getArticle, getArticles, getArticlesInBlog, getLocalStorage, getCart, setLocalStorage, updateCartDeliveryOptions } from '@anker-in/shopify-sdk';
3
3
  export { ShopifyConfig, clearLocalStorage, createShopifyClient, getLocalStorage, removeLocalStorage, setLocalStorage } from '@anker-in/shopify-sdk';
4
4
  import Cookies5 from 'js-cookie';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -195,7 +195,7 @@ function createMockCartFromLines(lines, existingCart) {
195
195
  currency: existingCart?.currency || { code: "USD" },
196
196
  taxesIncluded: existingCart?.taxesIncluded,
197
197
  lineItems: normalizedLines,
198
- totallineItemsDiscount: 0,
198
+ totalLineItemsDiscount: 0,
199
199
  orderDiscounts: 0,
200
200
  lineItemsSubtotalPrice: subtotalPrice,
201
201
  subtotalPrice,
@@ -1439,15 +1439,19 @@ var useCartAttributes = ({
1439
1439
  ];
1440
1440
  }, [profile?.memberType, profile?.token, userType, hasPlusMember]);
1441
1441
  const functionAttributes = useMemo(() => {
1442
- return [
1443
- cart?.discountCodes && {
1442
+ const hasFunctionEnvAttribute = cart?.lineItems.some(
1443
+ (item) => item.customAttributes?.some((attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY)
1444
+ );
1445
+ const discountCodes = cart?.discountCodes.map((item) => item.code).filter((code) => code) || [];
1446
+ return hasFunctionEnvAttribute ? [
1447
+ {
1444
1448
  key: "_discounts_function_env",
1445
1449
  value: JSON.stringify({
1446
- discount_code: cart?.discountCodes.map((item) => item.code),
1450
+ discount_code: discountCodes,
1447
1451
  user_tags: customer?.tags || []
1448
1452
  })
1449
1453
  }
1450
- ];
1454
+ ] : [];
1451
1455
  }, [cart]);
1452
1456
  const presellAttributes = useMemo(() => {
1453
1457
  return [
@@ -2624,6 +2628,67 @@ var usePlusMemberDeliveryCodes = ({
2624
2628
  [deliveryData]
2625
2629
  );
2626
2630
  };
2631
+ function useUpdateCartDeliveryOptions(mutate, metafieldIdentifiers, options) {
2632
+ const { client, locale, cartCookieAdapter } = useShopify();
2633
+ const updateDeliveryOptions = useCallback(
2634
+ async (_key, { arg }) => {
2635
+ const updatedCart = await updateCartDeliveryOptions(client, {
2636
+ ...arg,
2637
+ metafieldIdentifiers,
2638
+ cookieAdapter: cartCookieAdapter
2639
+ });
2640
+ console.log("useUpdateCartDeliveryOptions updatedCart", updatedCart);
2641
+ if (updatedCart) {
2642
+ mutate(updatedCart);
2643
+ }
2644
+ return updatedCart;
2645
+ },
2646
+ [client, locale, cartCookieAdapter, mutate]
2647
+ );
2648
+ return useSWRMutation("update-cart-delivery-options", updateDeliveryOptions, options);
2649
+ }
2650
+
2651
+ // src/hooks/member/plus/use-update-plus-member-delivery-options.ts
2652
+ var useUpdatePlusMemberDeliveryOptions = ({
2653
+ deliveryData,
2654
+ options
2655
+ }) => {
2656
+ const { cart, mutateCart: mutate, metafieldIdentifiers } = useCartContext();
2657
+ const { trigger: updateCartDeliveryOptions2, isMutating } = useUpdateCartDeliveryOptions(
2658
+ mutate,
2659
+ metafieldIdentifiers
2660
+ );
2661
+ const deliveryOptions = useMemo(() => {
2662
+ const deliveryGroupId = cart?.deliveryGroups?.[0]?.id;
2663
+ const selectedOptionCode = deliveryData?.deliveryCustomData?.selected_delivery_option;
2664
+ if (!deliveryGroupId || !selectedOptionCode) {
2665
+ return [];
2666
+ }
2667
+ const deliveryGroup = cart?.deliveryGroups?.find((group) => group?.id === deliveryGroupId);
2668
+ const matchedOption = deliveryGroup?.deliveryOptions?.find(
2669
+ (option) => option?.code === selectedOptionCode
2670
+ );
2671
+ if (!matchedOption?.handle) {
2672
+ return [];
2673
+ }
2674
+ return [
2675
+ {
2676
+ deliveryGroupId,
2677
+ deliveryOptionHandle: matchedOption.handle
2678
+ }
2679
+ ];
2680
+ }, [deliveryData, cart]);
2681
+ const handler = useCallback(async () => {
2682
+ const updatedCart = await updateCartDeliveryOptions2({
2683
+ selectedDeliveryOptions: deliveryOptions
2684
+ });
2685
+ if (updatedCart && mutate) {
2686
+ mutate(updatedCart);
2687
+ }
2688
+ return updatedCart;
2689
+ }, [deliveryOptions, mutate, updateCartDeliveryOptions2]);
2690
+ return useSWRMutation("update-cart-delivery-options", handler, options);
2691
+ };
2627
2692
  var usePlusMemberItemCustomAttributes = ({
2628
2693
  deliveryData
2629
2694
  }) => {
@@ -3244,6 +3309,6 @@ function useCartContext() {
3244
3309
  return context;
3245
3310
  }
3246
3311
 
3247
- export { BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, CartProvider, DeliveryPlusType, MAIN_PRODUCT_CODE, OrderBasePriceType, OrderDiscountType, PLUS_MEMBER_TYPE, PlusMemberContext, PlusMemberMode, PlusMemberProvider, PriceBasePriceType, PriceDiscountType, RuleType, SCRIPT_CODE_AMOUNT_KEY, ShippingMethodMode, ShopifyContext, ShopifyProvider, SpendMoneyType, atobID, browserCartCookieAdapter, browserCookieAdapter, btoaID, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, gaTrack, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, trackAddToCartFBQ, trackAddToCartGA, trackBeginCheckoutGA, trackBuyNowFBQ, trackBuyNowGA, useAddCartLines, useAddPlusMemberProductsToCart, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartContext, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useShopify, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdateVariantQuery, useVariant, useVariantMedia };
3312
+ export { BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, CartProvider, DeliveryPlusType, MAIN_PRODUCT_CODE, OrderBasePriceType, OrderDiscountType, PLUS_MEMBER_TYPE, PlusMemberContext, PlusMemberMode, PlusMemberProvider, PriceBasePriceType, PriceDiscountType, RuleType, SCRIPT_CODE_AMOUNT_KEY, ShippingMethodMode, ShopifyContext, ShopifyProvider, SpendMoneyType, atobID, browserCartCookieAdapter, browserCookieAdapter, btoaID, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, gaTrack, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, trackAddToCartFBQ, trackAddToCartGA, trackBeginCheckoutGA, trackBuyNowFBQ, trackBuyNowGA, useAddCartLines, useAddPlusMemberProductsToCart, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartContext, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useShopify, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia };
3248
3313
  //# sourceMappingURL=index.mjs.map
3249
3314
  //# sourceMappingURL=index.mjs.map