@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.js
CHANGED
|
@@ -181,25 +181,25 @@ var getMatchedMainProductSubTotal = (cartData, variant_list, main_product) => {
|
|
|
181
181
|
return acc + (main_product?.spend_money_type === 1 /* ORIGIN_PRICE */ ? Number(line.subtotalAmount) || 0 : Number(line.totalAmount) || 0);
|
|
182
182
|
}, 0) || 0;
|
|
183
183
|
};
|
|
184
|
-
var
|
|
185
|
-
const attr = attributes.find((attr2) => attr2.key === CUSTOMER_ATTRIBUTE_KEY);
|
|
186
|
-
return safeParseJson(attr?.value ?? "") ?? {};
|
|
187
|
-
};
|
|
188
|
-
var isAttributesEqual = (attrs1 = [], attrs2 = []) => {
|
|
189
|
-
if (attrs1.length !== attrs2.length) return false;
|
|
190
|
-
const sorted1 = [...attrs1].sort((a, b) => a.key.localeCompare(b.key));
|
|
191
|
-
const sorted2 = [...attrs2].sort((a, b) => a.key.localeCompare(b.key));
|
|
192
|
-
return sorted1.every(
|
|
193
|
-
(attr, i) => attr.key === sorted2[i]?.key && attr.value === sorted2[i]?.value
|
|
194
|
-
);
|
|
195
|
-
};
|
|
196
|
-
var safeParseJson = (str) => {
|
|
184
|
+
var safeParse = (str) => {
|
|
197
185
|
try {
|
|
198
186
|
return JSON.parse(str);
|
|
199
187
|
} catch (err) {
|
|
200
188
|
return {};
|
|
201
189
|
}
|
|
202
190
|
};
|
|
191
|
+
var getDiscountEnvAttributeValue = (attributes = []) => {
|
|
192
|
+
const attr = attributes.find((attr2) => attr2.key === CUSTOMER_ATTRIBUTE_KEY);
|
|
193
|
+
return safeParse(attr?.value ?? "") ?? {};
|
|
194
|
+
};
|
|
195
|
+
var checkAttributesUpdateNeeded = (oldAttributes, newAttributes, customAttributesNeedRemove) => {
|
|
196
|
+
return oldAttributes.some((attr) => {
|
|
197
|
+
const newAttr = newAttributes.find((newAttr2) => newAttr2.key === attr.key);
|
|
198
|
+
return newAttr ? newAttr.value !== attr.value : true;
|
|
199
|
+
}) || newAttributes.some((attr) => !oldAttributes.some((oldAttr) => oldAttr.key === attr.key)) || customAttributesNeedRemove.some(
|
|
200
|
+
(removeAttr) => oldAttributes.some((oldAttr) => oldAttr.key === removeAttr.key)
|
|
201
|
+
);
|
|
202
|
+
};
|
|
203
203
|
var containsAll = (source, requiredItems = []) => {
|
|
204
204
|
if (!requiredItems?.length) return true;
|
|
205
205
|
const sourceSet = new Set(source);
|
|
@@ -488,6 +488,14 @@ var useScriptAutoFreeGift = ({
|
|
|
488
488
|
set_points_subscribe(!!isPointsSubscribe);
|
|
489
489
|
}
|
|
490
490
|
}, [locale]);
|
|
491
|
+
const isActivityAvailable = react.useMemo(() => {
|
|
492
|
+
if (!campaign) return false;
|
|
493
|
+
const query = getQuery();
|
|
494
|
+
const utmCampaign = Cookies5__default.default.get("utm_campaign") || query?.utm_campaign;
|
|
495
|
+
if (campaign.activityAvailableQuery && !utmCampaign?.includes(campaign.activityAvailableQuery))
|
|
496
|
+
return false;
|
|
497
|
+
return true;
|
|
498
|
+
}, [campaign]);
|
|
491
499
|
const [upgrade_multiple, upgrade_value] = react.useMemo(() => {
|
|
492
500
|
let upgrade_multiple2 = 1;
|
|
493
501
|
let upgrade_value2 = 0;
|
|
@@ -504,8 +512,8 @@ var useScriptAutoFreeGift = ({
|
|
|
504
512
|
return [upgrade_multiple2, upgrade_value2];
|
|
505
513
|
}, [cart?.lineItems, points_subscribe]);
|
|
506
514
|
const breakpoints = react.useMemo(() => {
|
|
507
|
-
if (!
|
|
508
|
-
return (campaign
|
|
515
|
+
if (!isActivityAvailable) return [];
|
|
516
|
+
return (campaign?.breakpoints || []).map((item) => ({
|
|
509
517
|
breakpoint: new Decimal2__default.default(item.breakpoint).minus(new Decimal2__default.default(upgrade_value)).dividedBy(new Decimal2__default.default(upgrade_multiple)).toFixed(2, Decimal2__default.default.ROUND_DOWN),
|
|
510
518
|
giveawayProducts: item.giveawayProducts || []
|
|
511
519
|
}));
|
|
@@ -529,25 +537,26 @@ var useScriptAutoFreeGift = ({
|
|
|
529
537
|
return true;
|
|
530
538
|
}, [giftHandles]);
|
|
531
539
|
const involvedLines = react.useMemo(() => {
|
|
532
|
-
if (!
|
|
540
|
+
if (!isActivityAvailable) return [];
|
|
533
541
|
return (cart?.lineItems || []).filter((line) => {
|
|
534
542
|
const isNotGift = line?.totalAmount && Number(line.totalAmount) > 0 && line.customAttributes?.every(
|
|
535
543
|
(item) => item.key !== _giveaway
|
|
536
544
|
);
|
|
537
545
|
const hasCampaignTag = line.product?.tags?.some(
|
|
538
|
-
(tag) => campaign
|
|
546
|
+
(tag) => campaign?.includeTags?.includes(tag.trim()) && line.variant?.availableForSale
|
|
539
547
|
);
|
|
540
548
|
return isNotGift && hasCampaignTag;
|
|
541
549
|
});
|
|
542
|
-
}, [cart?.lineItems,
|
|
550
|
+
}, [cart?.lineItems, isActivityAvailable, _giveaway]);
|
|
543
551
|
const involvedSubTotal = react.useMemo(() => {
|
|
544
|
-
if (!
|
|
552
|
+
if (!isActivityAvailable) return new Decimal2__default.default(0);
|
|
545
553
|
return involvedLines.reduce((prev, item) => {
|
|
546
|
-
const amount = campaign
|
|
554
|
+
const amount = campaign?.useTotalAmount ? item.totalAmount : item.subtotalAmount;
|
|
547
555
|
return new Decimal2__default.default(prev).plus(new Decimal2__default.default(amount || 0));
|
|
548
556
|
}, new Decimal2__default.default(0));
|
|
549
|
-
}, [involvedLines,
|
|
557
|
+
}, [involvedLines, isActivityAvailable]);
|
|
550
558
|
const [freeGiftLevel, nextFreeGiftLevel] = react.useMemo(() => {
|
|
559
|
+
if (!isActivityAvailable) return [null, null];
|
|
551
560
|
const sortedLevels = [...breakpoints].sort(
|
|
552
561
|
(a, b) => Number(b.breakpoint) - Number(a.breakpoint)
|
|
553
562
|
);
|
|
@@ -667,8 +676,6 @@ function useAddCartLines(options) {
|
|
|
667
676
|
);
|
|
668
677
|
return useSWRMutation__default.default("add-cart-lines", addLines, options);
|
|
669
678
|
}
|
|
670
|
-
|
|
671
|
-
// src/tracking/ga.ts
|
|
672
679
|
var gaTrack = (data) => {
|
|
673
680
|
if (typeof window === "undefined") {
|
|
674
681
|
return;
|
|
@@ -686,18 +693,19 @@ var gaTrack = (data) => {
|
|
|
686
693
|
};
|
|
687
694
|
var trackAddToCartGA = ({
|
|
688
695
|
lineItems = [],
|
|
689
|
-
gtmParams = {}
|
|
690
|
-
brand
|
|
696
|
+
gtmParams = {}
|
|
691
697
|
}) => {
|
|
692
698
|
if (!lineItems.length || !lineItems[0]?.variant) {
|
|
693
699
|
return;
|
|
694
700
|
}
|
|
695
701
|
const { variant } = lineItems[0];
|
|
696
|
-
const currencyCode = variant?.price?.currencyCode;
|
|
697
|
-
const totalPrice = lineItems
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
702
|
+
const currencyCode = variant.product?.price?.currencyCode;
|
|
703
|
+
const totalPrice = lineItems?.reduce(
|
|
704
|
+
(prev, { variant: variant2 }) => prev.plus(
|
|
705
|
+
variant2?.finalPrice?.amount ?? variant2?.compareAtPrice?.amount ?? variant2?.price?.amount ?? 0
|
|
706
|
+
),
|
|
707
|
+
new Decimal2__default.default(0)
|
|
708
|
+
).toNumber();
|
|
701
709
|
gaTrack({
|
|
702
710
|
event: "ga4Event",
|
|
703
711
|
event_name: "add_to_cart",
|
|
@@ -708,11 +716,11 @@ var trackAddToCartGA = ({
|
|
|
708
716
|
position: gtmParams?.position || "",
|
|
709
717
|
items: lineItems.map(({ variant: variant2, quantity }) => ({
|
|
710
718
|
item_id: variant2?.sku,
|
|
711
|
-
item_name: variant2?.product?.title || variant2?.product?.
|
|
712
|
-
item_brand:
|
|
719
|
+
item_name: variant2?.product?.title || variant2?.product?.title,
|
|
720
|
+
item_brand: gtmParams?.brand || "",
|
|
713
721
|
item_category: variant2?.product?.productType || "",
|
|
714
|
-
item_variant: variant2?.title || variant2?.
|
|
715
|
-
price: variant2?.
|
|
722
|
+
item_variant: variant2?.title || variant2?.title,
|
|
723
|
+
price: variant2?.compareAtPrice?.amount ?? variant2?.price?.amount,
|
|
716
724
|
quantity: quantity || 1
|
|
717
725
|
})),
|
|
718
726
|
...gtmParams?.ga4Params
|
|
@@ -722,13 +730,17 @@ var trackAddToCartGA = ({
|
|
|
722
730
|
var trackBeginCheckoutGA = ({
|
|
723
731
|
lineItems = [],
|
|
724
732
|
currencyCode,
|
|
725
|
-
|
|
726
|
-
gtmParams = {},
|
|
727
|
-
brand
|
|
733
|
+
gtmParams = {}
|
|
728
734
|
}) => {
|
|
729
735
|
if (!lineItems.length) {
|
|
730
736
|
return;
|
|
731
737
|
}
|
|
738
|
+
const totalPrice = lineItems?.reduce(
|
|
739
|
+
(prev, { variant }) => prev.plus(
|
|
740
|
+
variant?.finalPrice?.amount ?? variant?.compareAtPrice?.amount ?? variant?.price?.amount ?? 0
|
|
741
|
+
),
|
|
742
|
+
new Decimal2__default.default(0)
|
|
743
|
+
).toNumber();
|
|
732
744
|
gaTrack({
|
|
733
745
|
event: "ga4Event",
|
|
734
746
|
event_name: "begin_checkout",
|
|
@@ -740,10 +752,10 @@ var trackBeginCheckoutGA = ({
|
|
|
740
752
|
items: lineItems.map((item) => ({
|
|
741
753
|
item_id: item.variant?.sku,
|
|
742
754
|
item_name: item.variant?.product?.title,
|
|
743
|
-
item_brand:
|
|
755
|
+
item_brand: gtmParams?.brand || "",
|
|
744
756
|
item_category: item.variant?.product?.productType,
|
|
745
757
|
item_variant: item.variant?.title,
|
|
746
|
-
price: item.
|
|
758
|
+
price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
|
|
747
759
|
quantity: item.quantity || 1
|
|
748
760
|
})),
|
|
749
761
|
...gtmParams?.ga4Params
|
|
@@ -752,19 +764,19 @@ var trackBeginCheckoutGA = ({
|
|
|
752
764
|
};
|
|
753
765
|
var trackBuyNowGA = ({
|
|
754
766
|
lineItems = [],
|
|
755
|
-
gtmParams = {}
|
|
756
|
-
brand
|
|
767
|
+
gtmParams = {}
|
|
757
768
|
}) => {
|
|
758
769
|
if (!lineItems.length || !lineItems[0]?.variant) {
|
|
759
770
|
return;
|
|
760
771
|
}
|
|
761
772
|
const { variant } = lineItems[0];
|
|
762
773
|
const currencyCode = variant.price?.currencyCode;
|
|
763
|
-
const totalPrice = lineItems
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
774
|
+
const totalPrice = lineItems?.reduce(
|
|
775
|
+
(prev, { variant: variant2 }) => prev.plus(
|
|
776
|
+
variant2?.finalPrice?.amount ?? variant2?.compareAtPrice?.amount ?? (variant2?.price?.amount || 0)
|
|
777
|
+
),
|
|
778
|
+
new Decimal2__default.default(0)
|
|
779
|
+
).toNumber();
|
|
768
780
|
gaTrack({
|
|
769
781
|
event: "ga4Event",
|
|
770
782
|
event_name: "begin_checkout",
|
|
@@ -776,10 +788,10 @@ var trackBuyNowGA = ({
|
|
|
776
788
|
items: lineItems.map((item) => ({
|
|
777
789
|
item_id: item.variant?.sku,
|
|
778
790
|
item_name: item.variant?.product?.title || item.variant?.title,
|
|
779
|
-
item_brand:
|
|
791
|
+
item_brand: gtmParams?.brand || "",
|
|
780
792
|
item_category: item.variant?.product?.productType || "",
|
|
781
793
|
item_variant: item.variant?.title,
|
|
782
|
-
price: item.
|
|
794
|
+
price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
|
|
783
795
|
quantity: item.quantity || 1
|
|
784
796
|
})),
|
|
785
797
|
...gtmParams?.ga4Params
|
|
@@ -793,10 +805,10 @@ var trackAddToCartFBQ = ({ lineItems = [] }) => {
|
|
|
793
805
|
return;
|
|
794
806
|
}
|
|
795
807
|
if (lineItems.length && lineItems[0]?.variant) {
|
|
796
|
-
const { variant, quantity
|
|
808
|
+
const { variant, quantity } = lineItems[0];
|
|
797
809
|
try {
|
|
798
810
|
window.fbq("track", "AddToCart", {
|
|
799
|
-
value:
|
|
811
|
+
value: variant?.compareAtPrice?.amount ?? (variant?.price?.amount || variant?.price || 0),
|
|
800
812
|
num_items: quantity,
|
|
801
813
|
currency: variant?.price?.currencyCode,
|
|
802
814
|
content_name: variant?.product?.title,
|
|
@@ -883,9 +895,9 @@ function useRemoveCartCodes(options) {
|
|
|
883
895
|
}
|
|
884
896
|
|
|
885
897
|
// src/hooks/cart/use-add-to-cart.ts
|
|
886
|
-
function useAddToCart({ withTrack = true
|
|
887
|
-
const { client, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
888
|
-
const {
|
|
898
|
+
function useAddToCart({ withTrack = true } = {}, swrOptions) {
|
|
899
|
+
const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
900
|
+
const { cart } = useCartContext();
|
|
889
901
|
const { trigger: applyCartCodes } = useApplyCartCodes();
|
|
890
902
|
const { trigger: removeInvalidCodes } = useRemoveCartCodes();
|
|
891
903
|
const { trigger: addCartLines2 } = useAddCartLines();
|
|
@@ -907,7 +919,8 @@ function useAddToCart({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
907
919
|
const lines = lineItems.map((item) => ({
|
|
908
920
|
merchandiseId: item.variant?.id || "",
|
|
909
921
|
quantity: item.quantity || 1,
|
|
910
|
-
attributes: item.attributes
|
|
922
|
+
attributes: item.attributes,
|
|
923
|
+
sellingPlanId: item.sellingPlanId
|
|
911
924
|
})).filter((item) => item.merchandiseId && item.quantity);
|
|
912
925
|
if (lines.length === 0) {
|
|
913
926
|
return;
|
|
@@ -942,34 +955,16 @@ function useAddToCart({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
942
955
|
discountCodes
|
|
943
956
|
});
|
|
944
957
|
}
|
|
945
|
-
if (withTrack
|
|
946
|
-
const trackingLineItems = resultCart.lineItems.map((line) => ({
|
|
947
|
-
variant: {
|
|
948
|
-
id: line.variant.id,
|
|
949
|
-
sku: line.variant.sku || "",
|
|
950
|
-
title: line.variant.name,
|
|
951
|
-
price: {
|
|
952
|
-
amount: String(line.variant.price),
|
|
953
|
-
currencyCode: resultCart.currency.code
|
|
954
|
-
},
|
|
955
|
-
product: line.product ? {
|
|
956
|
-
title: line.product.title || line.name,
|
|
957
|
-
productType: line.product.productType,
|
|
958
|
-
vendor: line.product.vendor
|
|
959
|
-
} : void 0
|
|
960
|
-
},
|
|
961
|
-
quantity: line.quantity
|
|
962
|
-
}));
|
|
958
|
+
if (withTrack) {
|
|
963
959
|
trackAddToCartGA({
|
|
964
|
-
lineItems
|
|
965
|
-
gtmParams: { ...gtmParams, brand }
|
|
966
|
-
brand
|
|
960
|
+
lineItems,
|
|
961
|
+
gtmParams: { ...gtmParams, brand: config.getBrand() }
|
|
967
962
|
});
|
|
968
|
-
trackAddToCartFBQ({ lineItems
|
|
963
|
+
trackAddToCartFBQ({ lineItems });
|
|
969
964
|
}
|
|
970
965
|
return resultCart;
|
|
971
966
|
},
|
|
972
|
-
[client, locale, cartCookieAdapter, userAdapter, cart, withTrack
|
|
967
|
+
[client, locale, cartCookieAdapter, userAdapter, cart, withTrack]
|
|
973
968
|
);
|
|
974
969
|
return useSWRMutation__default.default("add-to-cart", addToCart, swrOptions);
|
|
975
970
|
}
|
|
@@ -1050,8 +1045,8 @@ function useUpdateCartAttributes(mutate, metafieldIdentifiers, options) {
|
|
|
1050
1045
|
);
|
|
1051
1046
|
return useSWRMutation__default.default("update-cart-attributes", updateAttributes, options);
|
|
1052
1047
|
}
|
|
1053
|
-
function useBuyNow({ withTrack = true
|
|
1054
|
-
const { client, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
1048
|
+
function useBuyNow({ withTrack = true } = {}, swrOptions) {
|
|
1049
|
+
const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
1055
1050
|
const isLoggedIn = userAdapter?.isLoggedIn || false;
|
|
1056
1051
|
const buyNow = react.useCallback(
|
|
1057
1052
|
async (_key, { arg }) => {
|
|
@@ -1069,9 +1064,10 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
1069
1064
|
return;
|
|
1070
1065
|
}
|
|
1071
1066
|
const lines = lineItems.map((item) => ({
|
|
1072
|
-
merchandiseId: item.variant?.id ||
|
|
1067
|
+
merchandiseId: item.variant?.id || "",
|
|
1073
1068
|
quantity: item.quantity || 1,
|
|
1074
|
-
attributes: item.attributes
|
|
1069
|
+
attributes: item.attributes,
|
|
1070
|
+
sellingPlanId: item.sellingPlanId
|
|
1075
1071
|
})).filter((item) => item.merchandiseId && item.quantity);
|
|
1076
1072
|
if (lines.length === 0) {
|
|
1077
1073
|
return;
|
|
@@ -1088,27 +1084,9 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
1088
1084
|
throw new Error("Failed to create cart for buy now");
|
|
1089
1085
|
}
|
|
1090
1086
|
if (withTrack && resultCart.lineItems) {
|
|
1091
|
-
const trackingLineItems = resultCart.lineItems.map((line) => ({
|
|
1092
|
-
variant: {
|
|
1093
|
-
id: line.variantId,
|
|
1094
|
-
sku: line.variant.sku || "",
|
|
1095
|
-
title: line.variant.name,
|
|
1096
|
-
price: {
|
|
1097
|
-
amount: String(line.variant.price),
|
|
1098
|
-
currencyCode: resultCart.currency.code
|
|
1099
|
-
},
|
|
1100
|
-
product: line.product ? {
|
|
1101
|
-
title: line.product.title || line.name,
|
|
1102
|
-
productType: line.product.productType,
|
|
1103
|
-
vendor: line.product.vendor
|
|
1104
|
-
} : void 0
|
|
1105
|
-
},
|
|
1106
|
-
quantity: line.quantity
|
|
1107
|
-
}));
|
|
1108
1087
|
trackBuyNowGA({
|
|
1109
|
-
lineItems
|
|
1110
|
-
gtmParams: { ...gtmParams, brand }
|
|
1111
|
-
brand
|
|
1088
|
+
lineItems,
|
|
1089
|
+
gtmParams: { ...gtmParams, brand: config.getBrand() }
|
|
1112
1090
|
});
|
|
1113
1091
|
if (fbqTrackConfig) {
|
|
1114
1092
|
trackBuyNowFBQ({ trackConfig: fbqTrackConfig });
|
|
@@ -1125,7 +1103,7 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
|
|
|
1125
1103
|
}
|
|
1126
1104
|
return resultCart;
|
|
1127
1105
|
},
|
|
1128
|
-
[client, locale, isLoggedIn, cartCookieAdapter, withTrack
|
|
1106
|
+
[client, locale, isLoggedIn, cartCookieAdapter, withTrack]
|
|
1129
1107
|
);
|
|
1130
1108
|
return useSWRMutation__default.default("buy-now", buyNow, swrOptions);
|
|
1131
1109
|
}
|
|
@@ -2634,11 +2612,43 @@ function useAutoRemovePlusMemberInCart({
|
|
|
2634
2612
|
removeCartLines2
|
|
2635
2613
|
]);
|
|
2636
2614
|
}
|
|
2615
|
+
function useAddPlusMemberProductsToCart({
|
|
2616
|
+
cart,
|
|
2617
|
+
memberSetting,
|
|
2618
|
+
selectedPlusMemberMode,
|
|
2619
|
+
selectedPlusMemberProduct
|
|
2620
|
+
}) {
|
|
2621
|
+
const { hasMonthlyPlus, hasAnnualPlus } = useHasPlusMemberInCart({
|
|
2622
|
+
cart,
|
|
2623
|
+
memberSetting
|
|
2624
|
+
});
|
|
2625
|
+
const plusMemberProduct = react.useMemo(() => {
|
|
2626
|
+
if (selectedPlusMemberMode === "free" /* FREE */) {
|
|
2627
|
+
return void 0;
|
|
2628
|
+
}
|
|
2629
|
+
if (selectedPlusMemberMode === "monthly" /* MONTHLY */ && hasMonthlyPlus) {
|
|
2630
|
+
return void 0;
|
|
2631
|
+
}
|
|
2632
|
+
if (selectedPlusMemberMode === "annual" /* ANNUAL */ && hasAnnualPlus) {
|
|
2633
|
+
return void 0;
|
|
2634
|
+
}
|
|
2635
|
+
if (!selectedPlusMemberProduct) {
|
|
2636
|
+
return void 0;
|
|
2637
|
+
}
|
|
2638
|
+
return selectedPlusMemberProduct;
|
|
2639
|
+
}, [
|
|
2640
|
+
selectedPlusMemberMode,
|
|
2641
|
+
selectedPlusMemberProduct?.variant,
|
|
2642
|
+
selectedPlusMemberProduct?.product,
|
|
2643
|
+
hasMonthlyPlus,
|
|
2644
|
+
hasAnnualPlus
|
|
2645
|
+
]);
|
|
2646
|
+
return plusMemberProduct;
|
|
2647
|
+
}
|
|
2637
2648
|
var PlusMemberProvider = ({
|
|
2638
2649
|
variant,
|
|
2639
2650
|
product,
|
|
2640
|
-
|
|
2641
|
-
metafields,
|
|
2651
|
+
memberSetting,
|
|
2642
2652
|
initialSelectedPlusMemberMode = "free",
|
|
2643
2653
|
profile,
|
|
2644
2654
|
locale,
|
|
@@ -2658,14 +2668,14 @@ var PlusMemberProvider = ({
|
|
|
2658
2668
|
const [deleteMarginBottom, setDeleteMarginBottom] = react.useState(false);
|
|
2659
2669
|
const shippingMethodsContext = useShippingMethods({
|
|
2660
2670
|
variant,
|
|
2661
|
-
plusMemberMetafields:
|
|
2671
|
+
plusMemberMetafields: memberSetting,
|
|
2662
2672
|
selectedPlusMemberMode});
|
|
2663
2673
|
const plusMemberHandles = react.useMemo(() => {
|
|
2664
2674
|
return [
|
|
2665
|
-
|
|
2666
|
-
|
|
2675
|
+
memberSetting?.plus_monthly_product?.handle,
|
|
2676
|
+
memberSetting?.plus_annual_product?.handle
|
|
2667
2677
|
].filter(Boolean);
|
|
2668
|
-
}, [
|
|
2678
|
+
}, [memberSetting]);
|
|
2669
2679
|
const { data: plusMemberProducts = [] } = useProductsByHandles({
|
|
2670
2680
|
handles: plusMemberHandles
|
|
2671
2681
|
});
|
|
@@ -2673,25 +2683,24 @@ var PlusMemberProvider = ({
|
|
|
2673
2683
|
if (selectedPlusMemberMode === "free" /* FREE */) {
|
|
2674
2684
|
return null;
|
|
2675
2685
|
}
|
|
2676
|
-
const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ?
|
|
2677
|
-
const sku = selectedPlusMemberMode === "monthly" /* MONTHLY */ ?
|
|
2686
|
+
const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? memberSetting?.plus_monthly_product?.handle : memberSetting?.plus_annual_product?.handle;
|
|
2687
|
+
const sku = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? memberSetting?.plus_monthly_product?.sku : memberSetting?.plus_annual_product?.sku;
|
|
2678
2688
|
const product2 = plusMemberProducts?.find((p) => p.handle === handle);
|
|
2679
2689
|
const variant2 = product2?.variants?.find((v) => v.sku === sku);
|
|
2680
2690
|
return product2 && variant2 ? { product: product2, variant: variant2 } : null;
|
|
2681
|
-
}, [plusMemberProducts,
|
|
2691
|
+
}, [plusMemberProducts, memberSetting, selectedPlusMemberMode]);
|
|
2682
2692
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2683
2693
|
PlusMemberContext.Provider,
|
|
2684
2694
|
{
|
|
2685
2695
|
value: {
|
|
2686
2696
|
variant,
|
|
2687
|
-
shopCommon,
|
|
2688
2697
|
zipCode,
|
|
2689
2698
|
setZipCode,
|
|
2690
2699
|
allowNextDayDelivery,
|
|
2691
2700
|
setAllowNextDayDelivery,
|
|
2692
2701
|
allowThirdDayDelivery,
|
|
2693
2702
|
setAllowThirdDayDelivery,
|
|
2694
|
-
plusMemberMetafields:
|
|
2703
|
+
plusMemberMetafields: memberSetting,
|
|
2695
2704
|
selectedPlusMemberMode,
|
|
2696
2705
|
setSelectedPlusMemberMode,
|
|
2697
2706
|
showAreaCheckModal,
|
|
@@ -2910,6 +2919,9 @@ function CartProvider({
|
|
|
2910
2919
|
}) {
|
|
2911
2920
|
const { client, cartCookieAdapter } = useShopify();
|
|
2912
2921
|
const [customAttributes, setCustomAttributes] = react.useState([]);
|
|
2922
|
+
const [customAttributesNeedDelete, setCustomAttributesNeedDelete] = react.useState(
|
|
2923
|
+
[]
|
|
2924
|
+
);
|
|
2913
2925
|
const [isCodeChanging, setIsCodeChanging] = react.useState(false);
|
|
2914
2926
|
const [loadingState, setLoadingState] = react.useState({
|
|
2915
2927
|
editLineQuantityLoading: false,
|
|
@@ -2940,7 +2952,11 @@ function CartProvider({
|
|
|
2940
2952
|
ahooks.useRequest(
|
|
2941
2953
|
() => {
|
|
2942
2954
|
const newAttributes = [...attributes, ...customAttributes];
|
|
2943
|
-
const needUpdate = cart && !
|
|
2955
|
+
const needUpdate = cart && !checkAttributesUpdateNeeded(
|
|
2956
|
+
cart.customAttributes,
|
|
2957
|
+
newAttributes,
|
|
2958
|
+
customAttributesNeedDelete
|
|
2959
|
+
);
|
|
2944
2960
|
if (needUpdate) {
|
|
2945
2961
|
return updateAttributes({ attributes: newAttributes });
|
|
2946
2962
|
} else {
|
|
@@ -2961,11 +2977,12 @@ function CartProvider({
|
|
|
2961
2977
|
isCartLoading: isCartLoading || isCodeChanging,
|
|
2962
2978
|
setLoadingState
|
|
2963
2979
|
});
|
|
2964
|
-
const removeCustomAttributes = react.useCallback(
|
|
2965
|
-
|
|
2966
|
-
(
|
|
2967
|
-
|
|
2968
|
-
|
|
2980
|
+
const removeCustomAttributes = react.useCallback(
|
|
2981
|
+
(attributes2) => {
|
|
2982
|
+
setCustomAttributesNeedDelete(attributes2);
|
|
2983
|
+
},
|
|
2984
|
+
[setCustomAttributesNeedDelete]
|
|
2985
|
+
);
|
|
2969
2986
|
const addCustomAttributes = react.useCallback(
|
|
2970
2987
|
(attributes2) => {
|
|
2971
2988
|
const sameAttributes = attributes2.filter(
|
|
@@ -3147,6 +3164,7 @@ exports.atobID = atobID;
|
|
|
3147
3164
|
exports.browserCartCookieAdapter = browserCartCookieAdapter;
|
|
3148
3165
|
exports.browserCookieAdapter = browserCookieAdapter;
|
|
3149
3166
|
exports.btoaID = btoaID;
|
|
3167
|
+
exports.checkAttributesUpdateNeeded = checkAttributesUpdateNeeded;
|
|
3150
3168
|
exports.clearGeoLocationCache = clearGeoLocationCache;
|
|
3151
3169
|
exports.currencyCodeMapping = currencyCodeMapping;
|
|
3152
3170
|
exports.defaultSWRMutationConfiguration = defaultSWRMutationConfiguration;
|
|
@@ -3158,15 +3176,15 @@ exports.getDiscountEnvAttributeValue = getDiscountEnvAttributeValue;
|
|
|
3158
3176
|
exports.getMatchedMainProductSubTotal = getMatchedMainProductSubTotal;
|
|
3159
3177
|
exports.getQuery = getQuery;
|
|
3160
3178
|
exports.getReferralAttributes = getReferralAttributes;
|
|
3161
|
-
exports.isAttributesEqual = isAttributesEqual;
|
|
3162
3179
|
exports.preCheck = preCheck;
|
|
3163
|
-
exports.
|
|
3180
|
+
exports.safeParse = safeParse;
|
|
3164
3181
|
exports.trackAddToCartFBQ = trackAddToCartFBQ;
|
|
3165
3182
|
exports.trackAddToCartGA = trackAddToCartGA;
|
|
3166
3183
|
exports.trackBeginCheckoutGA = trackBeginCheckoutGA;
|
|
3167
3184
|
exports.trackBuyNowFBQ = trackBuyNowFBQ;
|
|
3168
3185
|
exports.trackBuyNowGA = trackBuyNowGA;
|
|
3169
3186
|
exports.useAddCartLines = useAddCartLines;
|
|
3187
|
+
exports.useAddPlusMemberProductsToCart = useAddPlusMemberProductsToCart;
|
|
3170
3188
|
exports.useAddToCart = useAddToCart;
|
|
3171
3189
|
exports.useAllBlogs = useAllBlogs;
|
|
3172
3190
|
exports.useAllCollections = useAllCollections;
|