@anker-in/shopify-react 0.1.1-beta.1 → 0.1.1-beta.2
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/hooks/index.d.mts +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +89 -40
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +87 -39
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/{index-CCMIeIUh.d.ts → index-BZ6WbAdZ.d.ts} +53 -14
- package/dist/{index-RevQokdZ.d.mts → index-Bea95u2X.d.mts} +53 -14
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +110 -50
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +108 -49
- package/dist/index.mjs.map +1 -1
- package/dist/provider/index.js +44 -27
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/index.mjs +44 -27
- package/dist/provider/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -173,25 +173,25 @@ var getMatchedMainProductSubTotal = (cartData, variant_list, main_product) => {
|
|
|
173
173
|
return acc + (main_product?.spend_money_type === 1 /* ORIGIN_PRICE */ ? Number(line.subtotalAmount) || 0 : Number(line.totalAmount) || 0);
|
|
174
174
|
}, 0) || 0;
|
|
175
175
|
};
|
|
176
|
-
var
|
|
177
|
-
const attr = attributes.find((attr2) => attr2.key === CUSTOMER_ATTRIBUTE_KEY);
|
|
178
|
-
return safeParseJson(attr?.value ?? "") ?? {};
|
|
179
|
-
};
|
|
180
|
-
var isAttributesEqual = (attrs1 = [], attrs2 = []) => {
|
|
181
|
-
if (attrs1.length !== attrs2.length) return false;
|
|
182
|
-
const sorted1 = [...attrs1].sort((a, b) => a.key.localeCompare(b.key));
|
|
183
|
-
const sorted2 = [...attrs2].sort((a, b) => a.key.localeCompare(b.key));
|
|
184
|
-
return sorted1.every(
|
|
185
|
-
(attr, i) => attr.key === sorted2[i]?.key && attr.value === sorted2[i]?.value
|
|
186
|
-
);
|
|
187
|
-
};
|
|
188
|
-
var safeParseJson = (str) => {
|
|
176
|
+
var safeParse = (str) => {
|
|
189
177
|
try {
|
|
190
178
|
return JSON.parse(str);
|
|
191
179
|
} catch (err) {
|
|
192
180
|
return {};
|
|
193
181
|
}
|
|
194
182
|
};
|
|
183
|
+
var getDiscountEnvAttributeValue = (attributes = []) => {
|
|
184
|
+
const attr = attributes.find((attr2) => attr2.key === CUSTOMER_ATTRIBUTE_KEY);
|
|
185
|
+
return safeParse(attr?.value ?? "") ?? {};
|
|
186
|
+
};
|
|
187
|
+
var checkAttributesUpdateNeeded = (oldAttributes, newAttributes, customAttributesNeedRemove) => {
|
|
188
|
+
return oldAttributes.some((attr) => {
|
|
189
|
+
const newAttr = newAttributes.find((newAttr2) => newAttr2.key === attr.key);
|
|
190
|
+
return newAttr ? newAttr.value !== attr.value : true;
|
|
191
|
+
}) || newAttributes.some((attr) => !oldAttributes.some((oldAttr) => oldAttr.key === attr.key)) || customAttributesNeedRemove.some(
|
|
192
|
+
(removeAttr) => oldAttributes.some((oldAttr) => oldAttr.key === removeAttr.key)
|
|
193
|
+
);
|
|
194
|
+
};
|
|
195
195
|
var containsAll = (source, requiredItems = []) => {
|
|
196
196
|
if (!requiredItems?.length) return true;
|
|
197
197
|
const sourceSet = new Set(source);
|
|
@@ -480,6 +480,14 @@ var useScriptAutoFreeGift = ({
|
|
|
480
480
|
set_points_subscribe(!!isPointsSubscribe);
|
|
481
481
|
}
|
|
482
482
|
}, [locale]);
|
|
483
|
+
const isActivityAvailable = useMemo(() => {
|
|
484
|
+
if (!campaign) return false;
|
|
485
|
+
const query = getQuery();
|
|
486
|
+
const utmCampaign = Cookies5.get("utm_campaign") || query?.utm_campaign;
|
|
487
|
+
if (campaign.activityAvailableQuery && !utmCampaign?.includes(campaign.activityAvailableQuery))
|
|
488
|
+
return false;
|
|
489
|
+
return true;
|
|
490
|
+
}, [campaign]);
|
|
483
491
|
const [upgrade_multiple, upgrade_value] = useMemo(() => {
|
|
484
492
|
let upgrade_multiple2 = 1;
|
|
485
493
|
let upgrade_value2 = 0;
|
|
@@ -496,8 +504,8 @@ var useScriptAutoFreeGift = ({
|
|
|
496
504
|
return [upgrade_multiple2, upgrade_value2];
|
|
497
505
|
}, [cart?.lineItems, points_subscribe]);
|
|
498
506
|
const breakpoints = useMemo(() => {
|
|
499
|
-
if (!
|
|
500
|
-
return (campaign
|
|
507
|
+
if (!isActivityAvailable) return [];
|
|
508
|
+
return (campaign?.breakpoints || []).map((item) => ({
|
|
501
509
|
breakpoint: new Decimal2(item.breakpoint).minus(new Decimal2(upgrade_value)).dividedBy(new Decimal2(upgrade_multiple)).toFixed(2, Decimal2.ROUND_DOWN),
|
|
502
510
|
giveawayProducts: item.giveawayProducts || []
|
|
503
511
|
}));
|
|
@@ -521,25 +529,26 @@ var useScriptAutoFreeGift = ({
|
|
|
521
529
|
return true;
|
|
522
530
|
}, [giftHandles]);
|
|
523
531
|
const involvedLines = useMemo(() => {
|
|
524
|
-
if (!
|
|
532
|
+
if (!isActivityAvailable) return [];
|
|
525
533
|
return (cart?.lineItems || []).filter((line) => {
|
|
526
534
|
const isNotGift = line?.totalAmount && Number(line.totalAmount) > 0 && line.customAttributes?.every(
|
|
527
535
|
(item) => item.key !== _giveaway
|
|
528
536
|
);
|
|
529
537
|
const hasCampaignTag = line.product?.tags?.some(
|
|
530
|
-
(tag) => campaign
|
|
538
|
+
(tag) => campaign?.includeTags?.includes(tag.trim()) && line.variant?.availableForSale
|
|
531
539
|
);
|
|
532
540
|
return isNotGift && hasCampaignTag;
|
|
533
541
|
});
|
|
534
|
-
}, [cart?.lineItems,
|
|
542
|
+
}, [cart?.lineItems, isActivityAvailable, _giveaway]);
|
|
535
543
|
const involvedSubTotal = useMemo(() => {
|
|
536
|
-
if (!
|
|
544
|
+
if (!isActivityAvailable) return new Decimal2(0);
|
|
537
545
|
return involvedLines.reduce((prev, item) => {
|
|
538
|
-
const amount = campaign
|
|
546
|
+
const amount = campaign?.useTotalAmount ? item.totalAmount : item.subtotalAmount;
|
|
539
547
|
return new Decimal2(prev).plus(new Decimal2(amount || 0));
|
|
540
548
|
}, new Decimal2(0));
|
|
541
|
-
}, [involvedLines,
|
|
549
|
+
}, [involvedLines, isActivityAvailable]);
|
|
542
550
|
const [freeGiftLevel, nextFreeGiftLevel] = useMemo(() => {
|
|
551
|
+
if (!isActivityAvailable) return [null, null];
|
|
543
552
|
const sortedLevels = [...breakpoints].sort(
|
|
544
553
|
(a, b) => Number(b.breakpoint) - Number(a.breakpoint)
|
|
545
554
|
);
|
|
@@ -683,8 +692,12 @@ var trackAddToCartGA = ({
|
|
|
683
692
|
}
|
|
684
693
|
const { variant } = lineItems[0];
|
|
685
694
|
const currencyCode = variant.product?.price?.currencyCode;
|
|
686
|
-
const
|
|
687
|
-
|
|
695
|
+
const totalPrice = lineItems?.reduce(
|
|
696
|
+
(prev, { variant: variant2 }) => prev.plus(
|
|
697
|
+
variant2?.finalPrice?.amount ?? variant2?.compareAtPrice?.amount ?? variant2?.price?.amount ?? 0
|
|
698
|
+
),
|
|
699
|
+
new Decimal2(0)
|
|
700
|
+
).toNumber();
|
|
688
701
|
gaTrack({
|
|
689
702
|
event: "ga4Event",
|
|
690
703
|
event_name: "add_to_cart",
|
|
@@ -699,7 +712,7 @@ var trackAddToCartGA = ({
|
|
|
699
712
|
item_brand: gtmParams?.brand || "",
|
|
700
713
|
item_category: variant2?.product?.productType || "",
|
|
701
714
|
item_variant: variant2?.title || variant2?.title,
|
|
702
|
-
price,
|
|
715
|
+
price: variant2?.compareAtPrice?.amount ?? variant2?.price?.amount,
|
|
703
716
|
quantity: quantity || 1
|
|
704
717
|
})),
|
|
705
718
|
...gtmParams?.ga4Params
|
|
@@ -714,9 +727,12 @@ var trackBeginCheckoutGA = ({
|
|
|
714
727
|
if (!lineItems.length) {
|
|
715
728
|
return;
|
|
716
729
|
}
|
|
717
|
-
const
|
|
718
|
-
|
|
719
|
-
|
|
730
|
+
const totalPrice = lineItems?.reduce(
|
|
731
|
+
(prev, { variant }) => prev.plus(
|
|
732
|
+
variant?.finalPrice?.amount ?? variant?.compareAtPrice?.amount ?? variant?.price?.amount ?? 0
|
|
733
|
+
),
|
|
734
|
+
new Decimal2(0)
|
|
735
|
+
).toNumber();
|
|
720
736
|
gaTrack({
|
|
721
737
|
event: "ga4Event",
|
|
722
738
|
event_name: "begin_checkout",
|
|
@@ -731,7 +747,7 @@ var trackBeginCheckoutGA = ({
|
|
|
731
747
|
item_brand: gtmParams?.brand || "",
|
|
732
748
|
item_category: item.variant?.product?.productType,
|
|
733
749
|
item_variant: item.variant?.title,
|
|
734
|
-
price,
|
|
750
|
+
price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
|
|
735
751
|
quantity: item.quantity || 1
|
|
736
752
|
})),
|
|
737
753
|
...gtmParams?.ga4Params
|
|
@@ -747,8 +763,12 @@ var trackBuyNowGA = ({
|
|
|
747
763
|
}
|
|
748
764
|
const { variant } = lineItems[0];
|
|
749
765
|
const currencyCode = variant.price?.currencyCode;
|
|
750
|
-
const
|
|
751
|
-
|
|
766
|
+
const totalPrice = lineItems?.reduce(
|
|
767
|
+
(prev, { variant: variant2 }) => prev.plus(
|
|
768
|
+
variant2?.finalPrice?.amount ?? variant2?.compareAtPrice?.amount ?? (variant2?.price?.amount || 0)
|
|
769
|
+
),
|
|
770
|
+
new Decimal2(0)
|
|
771
|
+
).toNumber();
|
|
752
772
|
gaTrack({
|
|
753
773
|
event: "ga4Event",
|
|
754
774
|
event_name: "begin_checkout",
|
|
@@ -763,7 +783,7 @@ var trackBuyNowGA = ({
|
|
|
763
783
|
item_brand: gtmParams?.brand || "",
|
|
764
784
|
item_category: item.variant?.product?.productType || "",
|
|
765
785
|
item_variant: item.variant?.title,
|
|
766
|
-
price,
|
|
786
|
+
price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
|
|
767
787
|
quantity: item.quantity || 1
|
|
768
788
|
})),
|
|
769
789
|
...gtmParams?.ga4Params
|
|
@@ -2584,11 +2604,43 @@ function useAutoRemovePlusMemberInCart({
|
|
|
2584
2604
|
removeCartLines2
|
|
2585
2605
|
]);
|
|
2586
2606
|
}
|
|
2607
|
+
function useAddPlusMemberProductsToCart({
|
|
2608
|
+
cart,
|
|
2609
|
+
memberSetting,
|
|
2610
|
+
selectedPlusMemberMode,
|
|
2611
|
+
selectedPlusMemberProduct
|
|
2612
|
+
}) {
|
|
2613
|
+
const { hasMonthlyPlus, hasAnnualPlus } = useHasPlusMemberInCart({
|
|
2614
|
+
cart,
|
|
2615
|
+
memberSetting
|
|
2616
|
+
});
|
|
2617
|
+
const plusMemberProduct = useMemo(() => {
|
|
2618
|
+
if (selectedPlusMemberMode === "free" /* FREE */) {
|
|
2619
|
+
return void 0;
|
|
2620
|
+
}
|
|
2621
|
+
if (selectedPlusMemberMode === "monthly" /* MONTHLY */ && hasMonthlyPlus) {
|
|
2622
|
+
return void 0;
|
|
2623
|
+
}
|
|
2624
|
+
if (selectedPlusMemberMode === "annual" /* ANNUAL */ && hasAnnualPlus) {
|
|
2625
|
+
return void 0;
|
|
2626
|
+
}
|
|
2627
|
+
if (!selectedPlusMemberProduct) {
|
|
2628
|
+
return void 0;
|
|
2629
|
+
}
|
|
2630
|
+
return selectedPlusMemberProduct;
|
|
2631
|
+
}, [
|
|
2632
|
+
selectedPlusMemberMode,
|
|
2633
|
+
selectedPlusMemberProduct?.variant,
|
|
2634
|
+
selectedPlusMemberProduct?.product,
|
|
2635
|
+
hasMonthlyPlus,
|
|
2636
|
+
hasAnnualPlus
|
|
2637
|
+
]);
|
|
2638
|
+
return plusMemberProduct;
|
|
2639
|
+
}
|
|
2587
2640
|
var PlusMemberProvider = ({
|
|
2588
2641
|
variant,
|
|
2589
2642
|
product,
|
|
2590
|
-
|
|
2591
|
-
metafields,
|
|
2643
|
+
memberSetting,
|
|
2592
2644
|
initialSelectedPlusMemberMode = "free",
|
|
2593
2645
|
profile,
|
|
2594
2646
|
locale,
|
|
@@ -2608,14 +2660,14 @@ var PlusMemberProvider = ({
|
|
|
2608
2660
|
const [deleteMarginBottom, setDeleteMarginBottom] = useState(false);
|
|
2609
2661
|
const shippingMethodsContext = useShippingMethods({
|
|
2610
2662
|
variant,
|
|
2611
|
-
plusMemberMetafields:
|
|
2663
|
+
plusMemberMetafields: memberSetting,
|
|
2612
2664
|
selectedPlusMemberMode});
|
|
2613
2665
|
const plusMemberHandles = useMemo(() => {
|
|
2614
2666
|
return [
|
|
2615
|
-
|
|
2616
|
-
|
|
2667
|
+
memberSetting?.plus_monthly_product?.handle,
|
|
2668
|
+
memberSetting?.plus_annual_product?.handle
|
|
2617
2669
|
].filter(Boolean);
|
|
2618
|
-
}, [
|
|
2670
|
+
}, [memberSetting]);
|
|
2619
2671
|
const { data: plusMemberProducts = [] } = useProductsByHandles({
|
|
2620
2672
|
handles: plusMemberHandles
|
|
2621
2673
|
});
|
|
@@ -2623,25 +2675,24 @@ var PlusMemberProvider = ({
|
|
|
2623
2675
|
if (selectedPlusMemberMode === "free" /* FREE */) {
|
|
2624
2676
|
return null;
|
|
2625
2677
|
}
|
|
2626
|
-
const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ?
|
|
2627
|
-
const sku = selectedPlusMemberMode === "monthly" /* MONTHLY */ ?
|
|
2678
|
+
const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? memberSetting?.plus_monthly_product?.handle : memberSetting?.plus_annual_product?.handle;
|
|
2679
|
+
const sku = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? memberSetting?.plus_monthly_product?.sku : memberSetting?.plus_annual_product?.sku;
|
|
2628
2680
|
const product2 = plusMemberProducts?.find((p) => p.handle === handle);
|
|
2629
2681
|
const variant2 = product2?.variants?.find((v) => v.sku === sku);
|
|
2630
2682
|
return product2 && variant2 ? { product: product2, variant: variant2 } : null;
|
|
2631
|
-
}, [plusMemberProducts,
|
|
2683
|
+
}, [plusMemberProducts, memberSetting, selectedPlusMemberMode]);
|
|
2632
2684
|
return /* @__PURE__ */ jsx(
|
|
2633
2685
|
PlusMemberContext.Provider,
|
|
2634
2686
|
{
|
|
2635
2687
|
value: {
|
|
2636
2688
|
variant,
|
|
2637
|
-
shopCommon,
|
|
2638
2689
|
zipCode,
|
|
2639
2690
|
setZipCode,
|
|
2640
2691
|
allowNextDayDelivery,
|
|
2641
2692
|
setAllowNextDayDelivery,
|
|
2642
2693
|
allowThirdDayDelivery,
|
|
2643
2694
|
setAllowThirdDayDelivery,
|
|
2644
|
-
plusMemberMetafields:
|
|
2695
|
+
plusMemberMetafields: memberSetting,
|
|
2645
2696
|
selectedPlusMemberMode,
|
|
2646
2697
|
setSelectedPlusMemberMode,
|
|
2647
2698
|
showAreaCheckModal,
|
|
@@ -2860,6 +2911,9 @@ function CartProvider({
|
|
|
2860
2911
|
}) {
|
|
2861
2912
|
const { client, cartCookieAdapter } = useShopify();
|
|
2862
2913
|
const [customAttributes, setCustomAttributes] = useState([]);
|
|
2914
|
+
const [customAttributesNeedDelete, setCustomAttributesNeedDelete] = useState(
|
|
2915
|
+
[]
|
|
2916
|
+
);
|
|
2863
2917
|
const [isCodeChanging, setIsCodeChanging] = useState(false);
|
|
2864
2918
|
const [loadingState, setLoadingState] = useState({
|
|
2865
2919
|
editLineQuantityLoading: false,
|
|
@@ -2890,7 +2944,11 @@ function CartProvider({
|
|
|
2890
2944
|
useRequest(
|
|
2891
2945
|
() => {
|
|
2892
2946
|
const newAttributes = [...attributes, ...customAttributes];
|
|
2893
|
-
const needUpdate = cart && !
|
|
2947
|
+
const needUpdate = cart && !checkAttributesUpdateNeeded(
|
|
2948
|
+
cart.customAttributes,
|
|
2949
|
+
newAttributes,
|
|
2950
|
+
customAttributesNeedDelete
|
|
2951
|
+
);
|
|
2894
2952
|
if (needUpdate) {
|
|
2895
2953
|
return updateAttributes({ attributes: newAttributes });
|
|
2896
2954
|
} else {
|
|
@@ -2911,11 +2969,12 @@ function CartProvider({
|
|
|
2911
2969
|
isCartLoading: isCartLoading || isCodeChanging,
|
|
2912
2970
|
setLoadingState
|
|
2913
2971
|
});
|
|
2914
|
-
const removeCustomAttributes = useCallback(
|
|
2915
|
-
|
|
2916
|
-
(
|
|
2917
|
-
|
|
2918
|
-
|
|
2972
|
+
const removeCustomAttributes = useCallback(
|
|
2973
|
+
(attributes2) => {
|
|
2974
|
+
setCustomAttributesNeedDelete(attributes2);
|
|
2975
|
+
},
|
|
2976
|
+
[setCustomAttributesNeedDelete]
|
|
2977
|
+
);
|
|
2919
2978
|
const addCustomAttributes = useCallback(
|
|
2920
2979
|
(attributes2) => {
|
|
2921
2980
|
const sameAttributes = attributes2.filter(
|
|
@@ -3048,6 +3107,6 @@ function useCartContext() {
|
|
|
3048
3107
|
return context;
|
|
3049
3108
|
}
|
|
3050
3109
|
|
|
3051
|
-
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, clearGeoLocationCache, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, gaTrack, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes,
|
|
3110
|
+
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, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, gaTrack, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, preCheck, safeParse, trackAddToCartFBQ, trackAddToCartGA, trackBeginCheckoutGA, trackBuyNowFBQ, trackBuyNowGA, useAddCartLines, useAddPlusMemberProductsToCart, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useBlog, useBuyNow, useCalcAutoFreeGift, 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 };
|
|
3052
3111
|
//# sourceMappingURL=index.mjs.map
|
|
3053
3112
|
//# sourceMappingURL=index.mjs.map
|