@anker-in/shopify-react 0.1.1-beta.0 → 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 +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +116 -110
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +114 -109
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/{index-BUWkkUdh.d.ts → index-BZ6WbAdZ.d.ts} +56 -103
- package/dist/{index-DenyuVGJ.d.mts → index-Bea95u2X.d.mts} +56 -103
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +139 -121
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +137 -120
- package/dist/index.mjs.map +1 -1
- package/dist/provider/index.d.mts +2 -1
- package/dist/provider/index.d.ts +2 -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/dist/{types-CMA6_FML.d.mts → types-CICUnw0v.d.mts} +85 -76
- package/dist/{types-CMA6_FML.d.ts → types-CICUnw0v.d.ts} +85 -76
- 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
|
);
|
|
@@ -659,8 +668,6 @@ function useAddCartLines(options) {
|
|
|
659
668
|
);
|
|
660
669
|
return useSWRMutation("add-cart-lines", addLines, options);
|
|
661
670
|
}
|
|
662
|
-
|
|
663
|
-
// src/tracking/ga.ts
|
|
664
671
|
var gaTrack = (data) => {
|
|
665
672
|
if (typeof window === "undefined") {
|
|
666
673
|
return;
|
|
@@ -678,18 +685,19 @@ var gaTrack = (data) => {
|
|
|
678
685
|
};
|
|
679
686
|
var trackAddToCartGA = ({
|
|
680
687
|
lineItems = [],
|
|
681
|
-
gtmParams = {}
|
|
682
|
-
brand
|
|
688
|
+
gtmParams = {}
|
|
683
689
|
}) => {
|
|
684
690
|
if (!lineItems.length || !lineItems[0]?.variant) {
|
|
685
691
|
return;
|
|
686
692
|
}
|
|
687
693
|
const { variant } = lineItems[0];
|
|
688
|
-
const currencyCode = variant?.price?.currencyCode;
|
|
689
|
-
const totalPrice = lineItems
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
694
|
+
const currencyCode = variant.product?.price?.currencyCode;
|
|
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();
|
|
693
701
|
gaTrack({
|
|
694
702
|
event: "ga4Event",
|
|
695
703
|
event_name: "add_to_cart",
|
|
@@ -700,11 +708,11 @@ var trackAddToCartGA = ({
|
|
|
700
708
|
position: gtmParams?.position || "",
|
|
701
709
|
items: lineItems.map(({ variant: variant2, quantity }) => ({
|
|
702
710
|
item_id: variant2?.sku,
|
|
703
|
-
item_name: variant2?.product?.title || variant2?.product?.
|
|
704
|
-
item_brand:
|
|
711
|
+
item_name: variant2?.product?.title || variant2?.product?.title,
|
|
712
|
+
item_brand: gtmParams?.brand || "",
|
|
705
713
|
item_category: variant2?.product?.productType || "",
|
|
706
|
-
item_variant: variant2?.title || variant2?.
|
|
707
|
-
price: variant2?.
|
|
714
|
+
item_variant: variant2?.title || variant2?.title,
|
|
715
|
+
price: variant2?.compareAtPrice?.amount ?? variant2?.price?.amount,
|
|
708
716
|
quantity: quantity || 1
|
|
709
717
|
})),
|
|
710
718
|
...gtmParams?.ga4Params
|
|
@@ -714,13 +722,17 @@ var trackAddToCartGA = ({
|
|
|
714
722
|
var trackBeginCheckoutGA = ({
|
|
715
723
|
lineItems = [],
|
|
716
724
|
currencyCode,
|
|
717
|
-
|
|
718
|
-
gtmParams = {},
|
|
719
|
-
brand
|
|
725
|
+
gtmParams = {}
|
|
720
726
|
}) => {
|
|
721
727
|
if (!lineItems.length) {
|
|
722
728
|
return;
|
|
723
729
|
}
|
|
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();
|
|
724
736
|
gaTrack({
|
|
725
737
|
event: "ga4Event",
|
|
726
738
|
event_name: "begin_checkout",
|
|
@@ -732,10 +744,10 @@ var trackBeginCheckoutGA = ({
|
|
|
732
744
|
items: lineItems.map((item) => ({
|
|
733
745
|
item_id: item.variant?.sku,
|
|
734
746
|
item_name: item.variant?.product?.title,
|
|
735
|
-
item_brand:
|
|
747
|
+
item_brand: gtmParams?.brand || "",
|
|
736
748
|
item_category: item.variant?.product?.productType,
|
|
737
749
|
item_variant: item.variant?.title,
|
|
738
|
-
price: item.
|
|
750
|
+
price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
|
|
739
751
|
quantity: item.quantity || 1
|
|
740
752
|
})),
|
|
741
753
|
...gtmParams?.ga4Params
|
|
@@ -744,19 +756,19 @@ var trackBeginCheckoutGA = ({
|
|
|
744
756
|
};
|
|
745
757
|
var trackBuyNowGA = ({
|
|
746
758
|
lineItems = [],
|
|
747
|
-
gtmParams = {}
|
|
748
|
-
brand
|
|
759
|
+
gtmParams = {}
|
|
749
760
|
}) => {
|
|
750
761
|
if (!lineItems.length || !lineItems[0]?.variant) {
|
|
751
762
|
return;
|
|
752
763
|
}
|
|
753
764
|
const { variant } = lineItems[0];
|
|
754
765
|
const currencyCode = variant.price?.currencyCode;
|
|
755
|
-
const totalPrice = lineItems
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
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();
|
|
760
772
|
gaTrack({
|
|
761
773
|
event: "ga4Event",
|
|
762
774
|
event_name: "begin_checkout",
|
|
@@ -768,10 +780,10 @@ var trackBuyNowGA = ({
|
|
|
768
780
|
items: lineItems.map((item) => ({
|
|
769
781
|
item_id: item.variant?.sku,
|
|
770
782
|
item_name: item.variant?.product?.title || item.variant?.title,
|
|
771
|
-
item_brand:
|
|
783
|
+
item_brand: gtmParams?.brand || "",
|
|
772
784
|
item_category: item.variant?.product?.productType || "",
|
|
773
785
|
item_variant: item.variant?.title,
|
|
774
|
-
price: item.
|
|
786
|
+
price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
|
|
775
787
|
quantity: item.quantity || 1
|
|
776
788
|
})),
|
|
777
789
|
...gtmParams?.ga4Params
|
|
@@ -785,10 +797,10 @@ var trackAddToCartFBQ = ({ lineItems = [] }) => {
|
|
|
785
797
|
return;
|
|
786
798
|
}
|
|
787
799
|
if (lineItems.length && lineItems[0]?.variant) {
|
|
788
|
-
const { variant, quantity
|
|
800
|
+
const { variant, quantity } = lineItems[0];
|
|
789
801
|
try {
|
|
790
802
|
window.fbq("track", "AddToCart", {
|
|
791
|
-
value:
|
|
803
|
+
value: variant?.compareAtPrice?.amount ?? (variant?.price?.amount || variant?.price || 0),
|
|
792
804
|
num_items: quantity,
|
|
793
805
|
currency: variant?.price?.currencyCode,
|
|
794
806
|
content_name: variant?.product?.title,
|
|
@@ -875,9 +887,9 @@ function useRemoveCartCodes(options) {
|
|
|
875
887
|
}
|
|
876
888
|
|
|
877
889
|
// src/hooks/cart/use-add-to-cart.ts
|
|
878
|
-
function useAddToCart({ withTrack = true
|
|
879
|
-
const { client, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
880
|
-
const {
|
|
890
|
+
function useAddToCart({ withTrack = true } = {}, swrOptions) {
|
|
891
|
+
const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
892
|
+
const { cart } = useCartContext();
|
|
881
893
|
const { trigger: applyCartCodes } = useApplyCartCodes();
|
|
882
894
|
const { trigger: removeInvalidCodes } = useRemoveCartCodes();
|
|
883
895
|
const { trigger: addCartLines2 } = useAddCartLines();
|
|
@@ -899,7 +911,8 @@ function useAddToCart({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
899
911
|
const lines = lineItems.map((item) => ({
|
|
900
912
|
merchandiseId: item.variant?.id || "",
|
|
901
913
|
quantity: item.quantity || 1,
|
|
902
|
-
attributes: item.attributes
|
|
914
|
+
attributes: item.attributes,
|
|
915
|
+
sellingPlanId: item.sellingPlanId
|
|
903
916
|
})).filter((item) => item.merchandiseId && item.quantity);
|
|
904
917
|
if (lines.length === 0) {
|
|
905
918
|
return;
|
|
@@ -934,34 +947,16 @@ function useAddToCart({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
934
947
|
discountCodes
|
|
935
948
|
});
|
|
936
949
|
}
|
|
937
|
-
if (withTrack
|
|
938
|
-
const trackingLineItems = resultCart.lineItems.map((line) => ({
|
|
939
|
-
variant: {
|
|
940
|
-
id: line.variant.id,
|
|
941
|
-
sku: line.variant.sku || "",
|
|
942
|
-
title: line.variant.name,
|
|
943
|
-
price: {
|
|
944
|
-
amount: String(line.variant.price),
|
|
945
|
-
currencyCode: resultCart.currency.code
|
|
946
|
-
},
|
|
947
|
-
product: line.product ? {
|
|
948
|
-
title: line.product.title || line.name,
|
|
949
|
-
productType: line.product.productType,
|
|
950
|
-
vendor: line.product.vendor
|
|
951
|
-
} : void 0
|
|
952
|
-
},
|
|
953
|
-
quantity: line.quantity
|
|
954
|
-
}));
|
|
950
|
+
if (withTrack) {
|
|
955
951
|
trackAddToCartGA({
|
|
956
|
-
lineItems
|
|
957
|
-
gtmParams: { ...gtmParams, brand }
|
|
958
|
-
brand
|
|
952
|
+
lineItems,
|
|
953
|
+
gtmParams: { ...gtmParams, brand: config.getBrand() }
|
|
959
954
|
});
|
|
960
|
-
trackAddToCartFBQ({ lineItems
|
|
955
|
+
trackAddToCartFBQ({ lineItems });
|
|
961
956
|
}
|
|
962
957
|
return resultCart;
|
|
963
958
|
},
|
|
964
|
-
[client, locale, cartCookieAdapter, userAdapter, cart, withTrack
|
|
959
|
+
[client, locale, cartCookieAdapter, userAdapter, cart, withTrack]
|
|
965
960
|
);
|
|
966
961
|
return useSWRMutation("add-to-cart", addToCart, swrOptions);
|
|
967
962
|
}
|
|
@@ -1042,8 +1037,8 @@ function useUpdateCartAttributes(mutate, metafieldIdentifiers, options) {
|
|
|
1042
1037
|
);
|
|
1043
1038
|
return useSWRMutation("update-cart-attributes", updateAttributes, options);
|
|
1044
1039
|
}
|
|
1045
|
-
function useBuyNow({ withTrack = true
|
|
1046
|
-
const { client, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
1040
|
+
function useBuyNow({ withTrack = true } = {}, swrOptions) {
|
|
1041
|
+
const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
1047
1042
|
const isLoggedIn = userAdapter?.isLoggedIn || false;
|
|
1048
1043
|
const buyNow = useCallback(
|
|
1049
1044
|
async (_key, { arg }) => {
|
|
@@ -1061,9 +1056,10 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
1061
1056
|
return;
|
|
1062
1057
|
}
|
|
1063
1058
|
const lines = lineItems.map((item) => ({
|
|
1064
|
-
merchandiseId: item.variant?.id ||
|
|
1059
|
+
merchandiseId: item.variant?.id || "",
|
|
1065
1060
|
quantity: item.quantity || 1,
|
|
1066
|
-
attributes: item.attributes
|
|
1061
|
+
attributes: item.attributes,
|
|
1062
|
+
sellingPlanId: item.sellingPlanId
|
|
1067
1063
|
})).filter((item) => item.merchandiseId && item.quantity);
|
|
1068
1064
|
if (lines.length === 0) {
|
|
1069
1065
|
return;
|
|
@@ -1080,27 +1076,9 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
1080
1076
|
throw new Error("Failed to create cart for buy now");
|
|
1081
1077
|
}
|
|
1082
1078
|
if (withTrack && resultCart.lineItems) {
|
|
1083
|
-
const trackingLineItems = resultCart.lineItems.map((line) => ({
|
|
1084
|
-
variant: {
|
|
1085
|
-
id: line.variantId,
|
|
1086
|
-
sku: line.variant.sku || "",
|
|
1087
|
-
title: line.variant.name,
|
|
1088
|
-
price: {
|
|
1089
|
-
amount: String(line.variant.price),
|
|
1090
|
-
currencyCode: resultCart.currency.code
|
|
1091
|
-
},
|
|
1092
|
-
product: line.product ? {
|
|
1093
|
-
title: line.product.title || line.name,
|
|
1094
|
-
productType: line.product.productType,
|
|
1095
|
-
vendor: line.product.vendor
|
|
1096
|
-
} : void 0
|
|
1097
|
-
},
|
|
1098
|
-
quantity: line.quantity
|
|
1099
|
-
}));
|
|
1100
1079
|
trackBuyNowGA({
|
|
1101
|
-
lineItems
|
|
1102
|
-
gtmParams: { ...gtmParams, brand }
|
|
1103
|
-
brand
|
|
1080
|
+
lineItems,
|
|
1081
|
+
gtmParams: { ...gtmParams, brand: config.getBrand() }
|
|
1104
1082
|
});
|
|
1105
1083
|
if (fbqTrackConfig) {
|
|
1106
1084
|
trackBuyNowFBQ({ trackConfig: fbqTrackConfig });
|
|
@@ -1117,7 +1095,7 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
1117
1095
|
}
|
|
1118
1096
|
return resultCart;
|
|
1119
1097
|
},
|
|
1120
|
-
[client, locale, isLoggedIn, cartCookieAdapter, withTrack
|
|
1098
|
+
[client, locale, isLoggedIn, cartCookieAdapter, withTrack]
|
|
1121
1099
|
);
|
|
1122
1100
|
return useSWRMutation("buy-now", buyNow, swrOptions);
|
|
1123
1101
|
}
|
|
@@ -2626,11 +2604,43 @@ function useAutoRemovePlusMemberInCart({
|
|
|
2626
2604
|
removeCartLines2
|
|
2627
2605
|
]);
|
|
2628
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
|
+
}
|
|
2629
2640
|
var PlusMemberProvider = ({
|
|
2630
2641
|
variant,
|
|
2631
2642
|
product,
|
|
2632
|
-
|
|
2633
|
-
metafields,
|
|
2643
|
+
memberSetting,
|
|
2634
2644
|
initialSelectedPlusMemberMode = "free",
|
|
2635
2645
|
profile,
|
|
2636
2646
|
locale,
|
|
@@ -2650,14 +2660,14 @@ var PlusMemberProvider = ({
|
|
|
2650
2660
|
const [deleteMarginBottom, setDeleteMarginBottom] = useState(false);
|
|
2651
2661
|
const shippingMethodsContext = useShippingMethods({
|
|
2652
2662
|
variant,
|
|
2653
|
-
plusMemberMetafields:
|
|
2663
|
+
plusMemberMetafields: memberSetting,
|
|
2654
2664
|
selectedPlusMemberMode});
|
|
2655
2665
|
const plusMemberHandles = useMemo(() => {
|
|
2656
2666
|
return [
|
|
2657
|
-
|
|
2658
|
-
|
|
2667
|
+
memberSetting?.plus_monthly_product?.handle,
|
|
2668
|
+
memberSetting?.plus_annual_product?.handle
|
|
2659
2669
|
].filter(Boolean);
|
|
2660
|
-
}, [
|
|
2670
|
+
}, [memberSetting]);
|
|
2661
2671
|
const { data: plusMemberProducts = [] } = useProductsByHandles({
|
|
2662
2672
|
handles: plusMemberHandles
|
|
2663
2673
|
});
|
|
@@ -2665,25 +2675,24 @@ var PlusMemberProvider = ({
|
|
|
2665
2675
|
if (selectedPlusMemberMode === "free" /* FREE */) {
|
|
2666
2676
|
return null;
|
|
2667
2677
|
}
|
|
2668
|
-
const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ?
|
|
2669
|
-
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;
|
|
2670
2680
|
const product2 = plusMemberProducts?.find((p) => p.handle === handle);
|
|
2671
2681
|
const variant2 = product2?.variants?.find((v) => v.sku === sku);
|
|
2672
2682
|
return product2 && variant2 ? { product: product2, variant: variant2 } : null;
|
|
2673
|
-
}, [plusMemberProducts,
|
|
2683
|
+
}, [plusMemberProducts, memberSetting, selectedPlusMemberMode]);
|
|
2674
2684
|
return /* @__PURE__ */ jsx(
|
|
2675
2685
|
PlusMemberContext.Provider,
|
|
2676
2686
|
{
|
|
2677
2687
|
value: {
|
|
2678
2688
|
variant,
|
|
2679
|
-
shopCommon,
|
|
2680
2689
|
zipCode,
|
|
2681
2690
|
setZipCode,
|
|
2682
2691
|
allowNextDayDelivery,
|
|
2683
2692
|
setAllowNextDayDelivery,
|
|
2684
2693
|
allowThirdDayDelivery,
|
|
2685
2694
|
setAllowThirdDayDelivery,
|
|
2686
|
-
plusMemberMetafields:
|
|
2695
|
+
plusMemberMetafields: memberSetting,
|
|
2687
2696
|
selectedPlusMemberMode,
|
|
2688
2697
|
setSelectedPlusMemberMode,
|
|
2689
2698
|
showAreaCheckModal,
|
|
@@ -2902,6 +2911,9 @@ function CartProvider({
|
|
|
2902
2911
|
}) {
|
|
2903
2912
|
const { client, cartCookieAdapter } = useShopify();
|
|
2904
2913
|
const [customAttributes, setCustomAttributes] = useState([]);
|
|
2914
|
+
const [customAttributesNeedDelete, setCustomAttributesNeedDelete] = useState(
|
|
2915
|
+
[]
|
|
2916
|
+
);
|
|
2905
2917
|
const [isCodeChanging, setIsCodeChanging] = useState(false);
|
|
2906
2918
|
const [loadingState, setLoadingState] = useState({
|
|
2907
2919
|
editLineQuantityLoading: false,
|
|
@@ -2932,7 +2944,11 @@ function CartProvider({
|
|
|
2932
2944
|
useRequest(
|
|
2933
2945
|
() => {
|
|
2934
2946
|
const newAttributes = [...attributes, ...customAttributes];
|
|
2935
|
-
const needUpdate = cart && !
|
|
2947
|
+
const needUpdate = cart && !checkAttributesUpdateNeeded(
|
|
2948
|
+
cart.customAttributes,
|
|
2949
|
+
newAttributes,
|
|
2950
|
+
customAttributesNeedDelete
|
|
2951
|
+
);
|
|
2936
2952
|
if (needUpdate) {
|
|
2937
2953
|
return updateAttributes({ attributes: newAttributes });
|
|
2938
2954
|
} else {
|
|
@@ -2953,11 +2969,12 @@ function CartProvider({
|
|
|
2953
2969
|
isCartLoading: isCartLoading || isCodeChanging,
|
|
2954
2970
|
setLoadingState
|
|
2955
2971
|
});
|
|
2956
|
-
const removeCustomAttributes = useCallback(
|
|
2957
|
-
|
|
2958
|
-
(
|
|
2959
|
-
|
|
2960
|
-
|
|
2972
|
+
const removeCustomAttributes = useCallback(
|
|
2973
|
+
(attributes2) => {
|
|
2974
|
+
setCustomAttributesNeedDelete(attributes2);
|
|
2975
|
+
},
|
|
2976
|
+
[setCustomAttributesNeedDelete]
|
|
2977
|
+
);
|
|
2961
2978
|
const addCustomAttributes = useCallback(
|
|
2962
2979
|
(attributes2) => {
|
|
2963
2980
|
const sameAttributes = attributes2.filter(
|
|
@@ -3090,6 +3107,6 @@ function useCartContext() {
|
|
|
3090
3107
|
return context;
|
|
3091
3108
|
}
|
|
3092
3109
|
|
|
3093
|
-
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 };
|
|
3094
3111
|
//# sourceMappingURL=index.mjs.map
|
|
3095
3112
|
//# sourceMappingURL=index.mjs.map
|