@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.
@@ -1,6 +1,6 @@
1
1
  import { createContext, useMemo, useRef, useState, useEffect, useCallback, useContext } from 'react';
2
2
  import useSWRMutation from 'swr/mutation';
3
- import { getProductsByHandles, createCart, updateCartCodes, addCartLines, updateCartLines, removeCartLines, updateCartAttributes, getProduct, getAllProducts, getCollection, getAllCollections, getCollections, getBlog, getAllBlogs, getArticle, getArticles, getArticlesInBlog, getLocalStorage, setLocalStorage } from '@anker-in/shopify-sdk';
3
+ import { getProductsByHandles, createCart, updateCartCodes, addCartLines, updateCartLines, removeCartLines, updateCartAttributes, getProduct, getAllProducts, getCollection, getAllCollections, getCollections, getBlog, getAllBlogs, getArticle, getArticles, getArticlesInBlog, getLocalStorage, setLocalStorage, updateCartDeliveryOptions } from '@anker-in/shopify-sdk';
4
4
  import Cookies5 from 'js-cookie';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
  import Decimal2 from 'decimal.js';
@@ -123,7 +123,7 @@ function createMockCartFromLines(lines, existingCart) {
123
123
  currency: existingCart?.currency || { code: "USD" },
124
124
  taxesIncluded: existingCart?.taxesIncluded,
125
125
  lineItems: normalizedLines,
126
- totallineItemsDiscount: 0,
126
+ totalLineItemsDiscount: 0,
127
127
  orderDiscounts: 0,
128
128
  lineItemsSubtotalPrice: subtotalPrice,
129
129
  subtotalPrice,
@@ -1342,15 +1342,19 @@ var useCartAttributes = ({
1342
1342
  ];
1343
1343
  }, [profile?.memberType, profile?.token, userType, hasPlusMember]);
1344
1344
  const functionAttributes = useMemo(() => {
1345
- return [
1346
- cart?.discountCodes && {
1345
+ const hasFunctionEnvAttribute = cart?.lineItems.some(
1346
+ (item) => item.customAttributes?.some((attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY)
1347
+ );
1348
+ const discountCodes = cart?.discountCodes.map((item) => item.code).filter((code) => code) || [];
1349
+ return hasFunctionEnvAttribute ? [
1350
+ {
1347
1351
  key: "_discounts_function_env",
1348
1352
  value: JSON.stringify({
1349
- discount_code: cart?.discountCodes.map((item) => item.code),
1353
+ discount_code: discountCodes,
1350
1354
  user_tags: customer?.tags || []
1351
1355
  })
1352
1356
  }
1353
- ];
1357
+ ] : [];
1354
1358
  }, [cart]);
1355
1359
  const presellAttributes = useMemo(() => {
1356
1360
  return [
@@ -2527,6 +2531,67 @@ var usePlusMemberDeliveryCodes = ({
2527
2531
  [deliveryData]
2528
2532
  );
2529
2533
  };
2534
+ function useUpdateCartDeliveryOptions(mutate, metafieldIdentifiers, options) {
2535
+ const { client, locale, cartCookieAdapter } = useShopify();
2536
+ const updateDeliveryOptions = useCallback(
2537
+ async (_key, { arg }) => {
2538
+ const updatedCart = await updateCartDeliveryOptions(client, {
2539
+ ...arg,
2540
+ metafieldIdentifiers,
2541
+ cookieAdapter: cartCookieAdapter
2542
+ });
2543
+ console.log("useUpdateCartDeliveryOptions updatedCart", updatedCart);
2544
+ if (updatedCart) {
2545
+ mutate(updatedCart);
2546
+ }
2547
+ return updatedCart;
2548
+ },
2549
+ [client, locale, cartCookieAdapter, mutate]
2550
+ );
2551
+ return useSWRMutation("update-cart-delivery-options", updateDeliveryOptions, options);
2552
+ }
2553
+
2554
+ // src/hooks/member/plus/use-update-plus-member-delivery-options.ts
2555
+ var useUpdatePlusMemberDeliveryOptions = ({
2556
+ deliveryData,
2557
+ options
2558
+ }) => {
2559
+ const { cart, mutateCart: mutate, metafieldIdentifiers } = useCartContext();
2560
+ const { trigger: updateCartDeliveryOptions2, isMutating } = useUpdateCartDeliveryOptions(
2561
+ mutate,
2562
+ metafieldIdentifiers
2563
+ );
2564
+ const deliveryOptions = useMemo(() => {
2565
+ const deliveryGroupId = cart?.deliveryGroups?.[0]?.id;
2566
+ const selectedOptionCode = deliveryData?.deliveryCustomData?.selected_delivery_option;
2567
+ if (!deliveryGroupId || !selectedOptionCode) {
2568
+ return [];
2569
+ }
2570
+ const deliveryGroup = cart?.deliveryGroups?.find((group) => group?.id === deliveryGroupId);
2571
+ const matchedOption = deliveryGroup?.deliveryOptions?.find(
2572
+ (option) => option?.code === selectedOptionCode
2573
+ );
2574
+ if (!matchedOption?.handle) {
2575
+ return [];
2576
+ }
2577
+ return [
2578
+ {
2579
+ deliveryGroupId,
2580
+ deliveryOptionHandle: matchedOption.handle
2581
+ }
2582
+ ];
2583
+ }, [deliveryData, cart]);
2584
+ const handler = useCallback(async () => {
2585
+ const updatedCart = await updateCartDeliveryOptions2({
2586
+ selectedDeliveryOptions: deliveryOptions
2587
+ });
2588
+ if (updatedCart && mutate) {
2589
+ mutate(updatedCart);
2590
+ }
2591
+ return updatedCart;
2592
+ }, [deliveryOptions, mutate, updateCartDeliveryOptions2]);
2593
+ return useSWRMutation("update-cart-delivery-options", handler, options);
2594
+ };
2530
2595
  var usePlusMemberItemCustomAttributes = ({
2531
2596
  deliveryData
2532
2597
  }) => {
@@ -2936,6 +3001,6 @@ function clearGeoLocationCache(cacheKey = "geoLocation") {
2936
3001
  }
2937
3002
  }
2938
3003
 
2939
- export { BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, DeliveryPlusType, MAIN_PRODUCT_CODE, OrderBasePriceType, OrderDiscountType, PLUS_MEMBER_TYPE, PlusMemberContext, PlusMemberMode, PlusMemberProvider, PriceBasePriceType, PriceDiscountType, RuleType, SCRIPT_CODE_AMOUNT_KEY, ShippingMethodMode, SpendMoneyType, atobID, btoaID, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddPlusMemberProductsToCart, 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, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdateVariantQuery, useVariant, useVariantMedia };
3004
+ export { BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, DeliveryPlusType, MAIN_PRODUCT_CODE, OrderBasePriceType, OrderDiscountType, PLUS_MEMBER_TYPE, PlusMemberContext, PlusMemberMode, PlusMemberProvider, PriceBasePriceType, PriceDiscountType, RuleType, SCRIPT_CODE_AMOUNT_KEY, ShippingMethodMode, SpendMoneyType, atobID, btoaID, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddPlusMemberProductsToCart, 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, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia };
2940
3005
  //# sourceMappingURL=index.mjs.map
2941
3006
  //# sourceMappingURL=index.mjs.map