@anker-in/shopify-react 0.1.1-beta.40 → 0.1.1-beta.42
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 +66 -28
- package/dist/hooks/index.d.ts +66 -28
- package/dist/hooks/index.js +183 -132
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +182 -131
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +188 -133
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +187 -132
- package/dist/index.mjs.map +1 -1
- package/dist/provider/index.d.mts +1 -1
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.js +21 -11
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/index.mjs +21 -11
- package/dist/provider/index.mjs.map +1 -1
- package/dist/{types-BSsb8OPm.d.mts → types-DntkHhf8.d.mts} +8 -5
- package/dist/{types-BSsb8OPm.d.ts → types-DntkHhf8.d.ts} +8 -5
- package/package.json +3 -3
package/dist/hooks/index.js
CHANGED
|
@@ -70,6 +70,7 @@ var CUSTOMER_ATTRIBUTE_KEY = "_discounts_function_env";
|
|
|
70
70
|
var CUSTOMER_SCRIPT_GIFT_KEY = "_giveaway_gradient_gifts";
|
|
71
71
|
var CODE_AMOUNT_KEY = "_sku_code_money";
|
|
72
72
|
var SCRIPT_CODE_AMOUNT_KEY = "_code_money";
|
|
73
|
+
var MEMBER_PRICE_ATTRIBUTE_KEY = "_member_price";
|
|
73
74
|
var MAIN_PRODUCT_CODE = ["WS24", "WSTD", "WS7D", "WSCP", "WSPE", "WSPD"];
|
|
74
75
|
|
|
75
76
|
// src/hooks/cart/utils/normalize-add-to-cart-lines.ts
|
|
@@ -948,59 +949,90 @@ function useRemoveCartCodes(options) {
|
|
|
948
949
|
);
|
|
949
950
|
return useSWRMutation__default.default("remove-codes", removeCodes, options);
|
|
950
951
|
}
|
|
951
|
-
|
|
952
|
-
// src/hooks/cart/utils/add-to-cart.ts
|
|
953
|
-
var getLinesWithAttributes = ({
|
|
952
|
+
var initSameLinesAttributes = ({
|
|
954
953
|
cart,
|
|
955
|
-
|
|
954
|
+
line
|
|
956
955
|
}) => {
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
956
|
+
const sameLineInCart = cart?.lineItems.find(
|
|
957
|
+
(lineInCart) => lineInCart.variant.sku === line.variant?.sku && lineInCart.product?.handle === line.variant?.product?.handle
|
|
958
|
+
);
|
|
959
|
+
const codeAmountAttribute = sameLineInCart?.customAttributes?.find(
|
|
960
|
+
(attr) => attr.key === CODE_AMOUNT_KEY
|
|
961
|
+
);
|
|
962
|
+
const scriptCodeAmountAttribute = sameLineInCart?.customAttributes?.find(
|
|
963
|
+
(attr) => attr.key === SCRIPT_CODE_AMOUNT_KEY
|
|
964
|
+
);
|
|
965
|
+
let functionAttribute = null;
|
|
966
|
+
try {
|
|
967
|
+
functionAttribute = sameLineInCart?.customAttributes?.find(
|
|
968
|
+
(attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY && JSON.parse(attr.value)?.discounted_amount
|
|
966
969
|
);
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
scriptCodeAmountAttribute
|
|
982
|
-
].filter(Boolean)
|
|
983
|
-
};
|
|
984
|
-
}
|
|
985
|
-
return line;
|
|
986
|
-
});
|
|
970
|
+
} catch (error) {
|
|
971
|
+
}
|
|
972
|
+
if (codeAmountAttribute || functionAttribute || scriptCodeAmountAttribute) {
|
|
973
|
+
return {
|
|
974
|
+
...line,
|
|
975
|
+
attributes: [
|
|
976
|
+
...line.attributes || [],
|
|
977
|
+
codeAmountAttribute,
|
|
978
|
+
functionAttribute,
|
|
979
|
+
scriptCodeAmountAttribute
|
|
980
|
+
].filter(Boolean)
|
|
981
|
+
};
|
|
982
|
+
}
|
|
983
|
+
return line;
|
|
987
984
|
};
|
|
988
|
-
var
|
|
985
|
+
var initDiscountAttributes = ({ line }) => {
|
|
986
|
+
let itemAttributes = line.attributes || [];
|
|
987
|
+
const functionEnvAttribute = itemAttributes.find((attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY);
|
|
988
|
+
if (!functionEnvAttribute) {
|
|
989
|
+
itemAttributes = itemAttributes.concat([
|
|
990
|
+
{
|
|
991
|
+
key: CUSTOMER_ATTRIBUTE_KEY,
|
|
992
|
+
value: JSON.stringify({
|
|
993
|
+
is_gift: false,
|
|
994
|
+
discounted_amount: line.variant?.finalPrice?.amount === void 0 ? Number(line.variant?.price?.amount) * (line.quantity || 1) : Number(line.variant?.finalPrice?.amount) * (line.quantity || 1)
|
|
995
|
+
})
|
|
996
|
+
}
|
|
997
|
+
]);
|
|
998
|
+
}
|
|
999
|
+
const memberPriceAttribute = itemAttributes.find(
|
|
1000
|
+
(attr) => attr.key === MEMBER_PRICE_ATTRIBUTE_KEY
|
|
1001
|
+
);
|
|
1002
|
+
const coupon = line.coupon;
|
|
1003
|
+
if (!memberPriceAttribute && coupon) {
|
|
1004
|
+
itemAttributes = itemAttributes.concat([
|
|
1005
|
+
{
|
|
1006
|
+
key: MEMBER_PRICE_ATTRIBUTE_KEY,
|
|
1007
|
+
value: JSON.stringify({ code: coupon.code })
|
|
1008
|
+
}
|
|
1009
|
+
]);
|
|
1010
|
+
}
|
|
1011
|
+
const couponDiscountAttribute = itemAttributes.find(
|
|
1012
|
+
(attr) => attr.key === CODE_AMOUNT_KEY || attr.key === SCRIPT_CODE_AMOUNT_KEY
|
|
1013
|
+
);
|
|
1014
|
+
if (!couponDiscountAttribute && coupon && Number(coupon?.amount) > 0) {
|
|
1015
|
+
itemAttributes = itemAttributes.concat([
|
|
1016
|
+
{
|
|
1017
|
+
key: CODE_AMOUNT_KEY,
|
|
1018
|
+
value: new Decimal2__default.default(coupon.amount).times(line.quantity || 1).toString()
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
key: SCRIPT_CODE_AMOUNT_KEY,
|
|
1022
|
+
value: new Decimal2__default.default(coupon.amount).times(line.quantity || 1).toString()
|
|
1023
|
+
}
|
|
1024
|
+
]);
|
|
1025
|
+
}
|
|
1026
|
+
return { ...line, attributes: itemAttributes };
|
|
1027
|
+
};
|
|
1028
|
+
var getLinesWithAttributes = ({
|
|
1029
|
+
cart,
|
|
1030
|
+
lineItems
|
|
1031
|
+
}) => {
|
|
989
1032
|
return lineItems.map((line) => {
|
|
990
|
-
|
|
991
|
-
const
|
|
992
|
-
|
|
993
|
-
itemAttributes = itemAttributes.concat([
|
|
994
|
-
{
|
|
995
|
-
key: CUSTOMER_ATTRIBUTE_KEY,
|
|
996
|
-
value: JSON.stringify({
|
|
997
|
-
is_gift: false,
|
|
998
|
-
discounted_amount: line.variant?.finalPrice?.amount === void 0 ? Number(line.variant?.price?.amount) * (line.quantity || 1) : Number(line.variant?.finalPrice?.amount) * (line.quantity || 1)
|
|
999
|
-
})
|
|
1000
|
-
}
|
|
1001
|
-
]);
|
|
1002
|
-
}
|
|
1003
|
-
return { ...line, attributes: itemAttributes };
|
|
1033
|
+
const sameLine = initSameLinesAttributes({ cart, line });
|
|
1034
|
+
const functionLine = initDiscountAttributes({ line: sameLine });
|
|
1035
|
+
return functionLine;
|
|
1004
1036
|
});
|
|
1005
1037
|
};
|
|
1006
1038
|
|
|
@@ -1029,11 +1061,7 @@ function useAddToCart({ withTrack = true } = {}, swrOptions) {
|
|
|
1029
1061
|
return;
|
|
1030
1062
|
}
|
|
1031
1063
|
performanceAdapter?.addToCartStart();
|
|
1032
|
-
const
|
|
1033
|
-
cart,
|
|
1034
|
-
lineItems
|
|
1035
|
-
});
|
|
1036
|
-
const linesWithFunctionAttributes = getLinesWithFunctionAttributes(linesWithAttributes);
|
|
1064
|
+
const linesWithFunctionAttributes = getLinesWithAttributes({ cart, lineItems });
|
|
1037
1065
|
const lines = linesWithFunctionAttributes.map((item) => ({
|
|
1038
1066
|
merchandiseId: item.variant?.id || "",
|
|
1039
1067
|
quantity: item.quantity || 1,
|
|
@@ -1170,24 +1198,31 @@ function useRemoveCartLines(options) {
|
|
|
1170
1198
|
);
|
|
1171
1199
|
return useSWRMutation__default.default("remove-cart-lines", removeLines, options);
|
|
1172
1200
|
}
|
|
1173
|
-
function useUpdateCartAttributes(
|
|
1201
|
+
function useUpdateCartAttributes({
|
|
1202
|
+
mutate,
|
|
1203
|
+
metafieldIdentifiers,
|
|
1204
|
+
disabled = false,
|
|
1205
|
+
swrOptions
|
|
1206
|
+
}) {
|
|
1174
1207
|
const { client, locale, cartCookieAdapter } = useShopify();
|
|
1175
1208
|
const updateAttributes = react.useCallback(
|
|
1176
1209
|
async (_key, { arg }) => {
|
|
1210
|
+
if (disabled || !cartCookieAdapter?.getCartId(locale)) {
|
|
1211
|
+
return void 0;
|
|
1212
|
+
}
|
|
1177
1213
|
const updatedCart = await shopifySdk.updateCartAttributes(client, {
|
|
1178
1214
|
...arg,
|
|
1179
1215
|
metafieldIdentifiers,
|
|
1180
1216
|
cookieAdapter: cartCookieAdapter
|
|
1181
1217
|
});
|
|
1182
|
-
console.log("useUpdateCartAttributes updatedCart", updatedCart);
|
|
1183
1218
|
if (updatedCart) {
|
|
1184
1219
|
mutate(updatedCart);
|
|
1185
1220
|
}
|
|
1186
1221
|
return updatedCart;
|
|
1187
1222
|
},
|
|
1188
|
-
[client, locale, cartCookieAdapter, mutate, metafieldIdentifiers]
|
|
1223
|
+
[client, locale, cartCookieAdapter, mutate, metafieldIdentifiers, disabled]
|
|
1189
1224
|
);
|
|
1190
|
-
return useSWRMutation__default.default("update-cart-attributes", updateAttributes,
|
|
1225
|
+
return useSWRMutation__default.default("update-cart-attributes", updateAttributes, swrOptions);
|
|
1191
1226
|
}
|
|
1192
1227
|
function useBuyNow({ withTrack = true } = {}, swrOptions) {
|
|
1193
1228
|
const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
@@ -1207,13 +1242,15 @@ function useBuyNow({ withTrack = true } = {}, swrOptions) {
|
|
|
1207
1242
|
if (!lineItems || lineItems.length === 0) {
|
|
1208
1243
|
return;
|
|
1209
1244
|
}
|
|
1210
|
-
const linesWithFunctionAttributes =
|
|
1245
|
+
const linesWithFunctionAttributes = getLinesWithAttributes({
|
|
1246
|
+
lineItems
|
|
1247
|
+
});
|
|
1211
1248
|
const lines = linesWithFunctionAttributes.map((item) => ({
|
|
1212
1249
|
merchandiseId: item.variant?.id || "",
|
|
1213
1250
|
quantity: item.quantity || 1,
|
|
1214
1251
|
attributes: item.attributes,
|
|
1215
1252
|
sellingPlanId: item.sellingPlanId
|
|
1216
|
-
})).filter((item) => item.merchandiseId
|
|
1253
|
+
})).filter((item) => item.merchandiseId);
|
|
1217
1254
|
if (lines.length === 0) {
|
|
1218
1255
|
return;
|
|
1219
1256
|
}
|
|
@@ -1268,17 +1305,41 @@ function useCalcGiftsFromLines({
|
|
|
1268
1305
|
lines
|
|
1269
1306
|
});
|
|
1270
1307
|
const allGiftLines = react.useMemo(() => {
|
|
1271
|
-
const functionGiftLines = functionGift.qualifyingGift?.itemsToAdd || []
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
(p) => p.handle === product.handle
|
|
1308
|
+
const functionGiftLines = (functionGift.qualifyingGift?.itemsToAdd || []).map((item) => {
|
|
1309
|
+
const product = functionGift.giftProductsResult?.find(
|
|
1310
|
+
(product2) => product2.handle === item.variant.handle
|
|
1275
1311
|
);
|
|
1276
|
-
const
|
|
1312
|
+
const variants = product?.variants;
|
|
1313
|
+
const variant = Array.isArray(variants) ? variants.find((v) => v.sku === item.variant.sku) : void 0;
|
|
1314
|
+
if (!variant) {
|
|
1315
|
+
console.warn(
|
|
1316
|
+
`Function gift: Variant not found for handle=${item.variant.handle}, sku=${item.variant.sku}`
|
|
1317
|
+
);
|
|
1318
|
+
return null;
|
|
1319
|
+
}
|
|
1277
1320
|
return {
|
|
1278
1321
|
variant: {
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1322
|
+
...variant,
|
|
1323
|
+
product
|
|
1324
|
+
},
|
|
1325
|
+
quantity: item.quantity ?? 1,
|
|
1326
|
+
attributes: item.attributes
|
|
1327
|
+
};
|
|
1328
|
+
}).filter((item) => item !== null);
|
|
1329
|
+
const scriptGiftLines = scriptGift.freeGiftLevel ? scriptGift.freeGiftLevel.giveawayProducts.map((item) => {
|
|
1330
|
+
const product = scriptGift.giftProductsResult?.find(
|
|
1331
|
+
(product2) => product2.handle === item.handle
|
|
1332
|
+
);
|
|
1333
|
+
const variants = product?.variants;
|
|
1334
|
+
const variant = Array.isArray(variants) ? variants.find((v) => v.sku === item.sku) : void 0;
|
|
1335
|
+
if (!variant) {
|
|
1336
|
+
console.warn(`Script gift: Variant not found for handle=${item.handle}, sku=${item.sku}`);
|
|
1337
|
+
return null;
|
|
1338
|
+
}
|
|
1339
|
+
return {
|
|
1340
|
+
variant: {
|
|
1341
|
+
...variant,
|
|
1342
|
+
product
|
|
1282
1343
|
},
|
|
1283
1344
|
quantity: 1,
|
|
1284
1345
|
attributes: [
|
|
@@ -1288,10 +1349,11 @@ function useCalcGiftsFromLines({
|
|
|
1288
1349
|
}
|
|
1289
1350
|
]
|
|
1290
1351
|
};
|
|
1291
|
-
}).filter((item) => item
|
|
1352
|
+
}).filter((item) => item !== null) : [];
|
|
1292
1353
|
return [...functionGiftLines, ...scriptGiftLines];
|
|
1293
1354
|
}, [
|
|
1294
1355
|
functionGift.qualifyingGift,
|
|
1356
|
+
functionGift.giftProductsResult,
|
|
1295
1357
|
scriptGift.freeGiftLevel,
|
|
1296
1358
|
scriptGift.giftProductsResult,
|
|
1297
1359
|
scriptGiveawayKey
|
|
@@ -1524,7 +1586,7 @@ var useCartAttributes = ({
|
|
|
1524
1586
|
})
|
|
1525
1587
|
}
|
|
1526
1588
|
] : [];
|
|
1527
|
-
}, [cart]);
|
|
1589
|
+
}, [cart, customer]);
|
|
1528
1590
|
const presellAttributes = react.useMemo(() => {
|
|
1529
1591
|
return [
|
|
1530
1592
|
{
|
|
@@ -1588,9 +1650,7 @@ var useCartAttributes = ({
|
|
|
1588
1650
|
"_play_mode_id",
|
|
1589
1651
|
"_popup"
|
|
1590
1652
|
];
|
|
1591
|
-
return cart?.customAttributes?.filter(
|
|
1592
|
-
(item) => !commonAttributeKeys.includes(item.key)
|
|
1593
|
-
) || [];
|
|
1653
|
+
return cart?.customAttributes?.filter((item) => !commonAttributeKeys.includes(item.key)) || [];
|
|
1594
1654
|
}, [cart]);
|
|
1595
1655
|
return react.useMemo(
|
|
1596
1656
|
() => ({
|
|
@@ -2444,8 +2504,9 @@ var createInitialValue = () => ({
|
|
|
2444
2504
|
tddCoupon: void 0,
|
|
2445
2505
|
isLoadingCoupon: false
|
|
2446
2506
|
},
|
|
2447
|
-
|
|
2448
|
-
|
|
2507
|
+
selectedPlusMemberVariant: void 0,
|
|
2508
|
+
monthlyVariant: void 0,
|
|
2509
|
+
annualVariant: void 0,
|
|
2449
2510
|
showPlusMemberBenefit: false,
|
|
2450
2511
|
setShowPlusMemberBenefit: () => {
|
|
2451
2512
|
},
|
|
@@ -2459,33 +2520,39 @@ var PlusMemberContext = react.createContext(createInitialValue());
|
|
|
2459
2520
|
function usePlusMemberContext() {
|
|
2460
2521
|
return react.useContext(PlusMemberContext);
|
|
2461
2522
|
}
|
|
2462
|
-
function
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
const
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
);
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2523
|
+
function usePlusMemberVariants({
|
|
2524
|
+
memberSetting
|
|
2525
|
+
}) {
|
|
2526
|
+
const plusMonthly = memberSetting?.plus_monthly_product;
|
|
2527
|
+
const plusAnnual = memberSetting?.plus_annual_product;
|
|
2528
|
+
const plusMemberHandles = react.useMemo(() => {
|
|
2529
|
+
return [plusMonthly?.handle, plusAnnual?.handle].filter(Boolean);
|
|
2530
|
+
}, [plusMonthly?.handle, plusAnnual?.handle]);
|
|
2531
|
+
const { data: plusMemberProducts = [] } = useProductsByHandles({
|
|
2532
|
+
handles: plusMemberHandles
|
|
2533
|
+
});
|
|
2534
|
+
const monthlyProduct = react.useMemo(() => {
|
|
2535
|
+
return plusMemberProducts?.find((item) => item?.handle === plusMonthly?.handle);
|
|
2473
2536
|
}, [plusMemberProducts, plusMonthly]);
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
function usePlusAnnualProductVariant() {
|
|
2477
|
-
const { plusMemberProducts, plusMemberMetafields } = usePlusMemberContext();
|
|
2478
|
-
const plusAnnual = plusMemberMetafields?.plus_annual_product;
|
|
2479
|
-
const plusAnnualProductVariant = react.useMemo(() => {
|
|
2480
|
-
const product = plusMemberProducts?.find(
|
|
2481
|
-
(item) => item?.handle === plusAnnual?.handle
|
|
2482
|
-
);
|
|
2483
|
-
const productVariant = product?.variants?.find(
|
|
2484
|
-
(item) => item.sku === plusAnnual?.sku
|
|
2485
|
-
);
|
|
2486
|
-
return productVariant;
|
|
2537
|
+
const annualProduct = react.useMemo(() => {
|
|
2538
|
+
return plusMemberProducts?.find((item) => item?.handle === plusAnnual?.handle);
|
|
2487
2539
|
}, [plusMemberProducts, plusAnnual]);
|
|
2488
|
-
|
|
2540
|
+
const monthlyVariant = react.useMemo(() => {
|
|
2541
|
+
return monthlyProduct?.variants?.find((item) => item.sku === plusMonthly?.sku);
|
|
2542
|
+
}, [monthlyProduct, plusMonthly]);
|
|
2543
|
+
const annualVariant = react.useMemo(() => {
|
|
2544
|
+
return annualProduct?.variants?.find((item) => item.sku === plusAnnual?.sku);
|
|
2545
|
+
}, [annualProduct, plusAnnual]);
|
|
2546
|
+
return {
|
|
2547
|
+
monthlyVariant: monthlyVariant ? {
|
|
2548
|
+
...monthlyVariant,
|
|
2549
|
+
product: monthlyProduct
|
|
2550
|
+
} : void 0,
|
|
2551
|
+
annualVariant: annualVariant ? {
|
|
2552
|
+
...annualVariant,
|
|
2553
|
+
product: annualProduct
|
|
2554
|
+
} : void 0
|
|
2555
|
+
};
|
|
2489
2556
|
}
|
|
2490
2557
|
var useAvailableDeliveryCoupon = ({
|
|
2491
2558
|
profile
|
|
@@ -2886,13 +2953,13 @@ function usePlusMemberNeedAddToCart({
|
|
|
2886
2953
|
cart,
|
|
2887
2954
|
profile
|
|
2888
2955
|
}) {
|
|
2889
|
-
const { selectedPlusMemberMode,
|
|
2956
|
+
const { selectedPlusMemberMode, selectedPlusMemberVariant, plusMemberMetafields } = usePlusMemberContext();
|
|
2890
2957
|
const { hasMonthlyPlus, hasAnnualPlus } = useHasPlusMemberInCart({
|
|
2891
2958
|
memberSetting: plusMemberMetafields,
|
|
2892
2959
|
cart
|
|
2893
2960
|
});
|
|
2894
|
-
const
|
|
2895
|
-
if (!
|
|
2961
|
+
const plusMemberVariant = react.useMemo(() => {
|
|
2962
|
+
if (!selectedPlusMemberVariant || selectedPlusMemberMode === "free" /* FREE */) {
|
|
2896
2963
|
return void 0;
|
|
2897
2964
|
}
|
|
2898
2965
|
if (selectedPlusMemberMode === "monthly" /* MONTHLY */ && hasMonthlyPlus) {
|
|
@@ -2907,15 +2974,9 @@ function usePlusMemberNeedAddToCart({
|
|
|
2907
2974
|
if (profile?.isAnnualPlus && selectedPlusMemberMode === "annual" /* ANNUAL */) {
|
|
2908
2975
|
return void 0;
|
|
2909
2976
|
}
|
|
2910
|
-
return
|
|
2911
|
-
}, [
|
|
2912
|
-
|
|
2913
|
-
selectedPlusMemberProduct?.variant,
|
|
2914
|
-
selectedPlusMemberProduct?.product,
|
|
2915
|
-
hasMonthlyPlus,
|
|
2916
|
-
hasAnnualPlus
|
|
2917
|
-
]);
|
|
2918
|
-
return plusMemberProduct;
|
|
2977
|
+
return selectedPlusMemberVariant;
|
|
2978
|
+
}, [selectedPlusMemberMode, selectedPlusMemberVariant, hasMonthlyPlus, hasAnnualPlus]);
|
|
2979
|
+
return plusMemberVariant;
|
|
2919
2980
|
}
|
|
2920
2981
|
var PlusMemberProvider = ({
|
|
2921
2982
|
variant,
|
|
@@ -2945,26 +3006,15 @@ var PlusMemberProvider = ({
|
|
|
2945
3006
|
profile,
|
|
2946
3007
|
isPlus: profile?.isPlus || false
|
|
2947
3008
|
});
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
return [
|
|
2951
|
-
memberSetting?.plus_monthly_product?.handle,
|
|
2952
|
-
memberSetting?.plus_annual_product?.handle
|
|
2953
|
-
].filter(Boolean);
|
|
2954
|
-
}, [memberSetting]);
|
|
2955
|
-
const { data: plusMemberProducts = [] } = useProductsByHandles({
|
|
2956
|
-
handles: plusMemberHandles
|
|
3009
|
+
const { monthlyVariant, annualVariant } = usePlusMemberVariants({
|
|
3010
|
+
memberSetting
|
|
2957
3011
|
});
|
|
2958
|
-
const
|
|
3012
|
+
const selectedPlusMemberVariant = react.useMemo(() => {
|
|
2959
3013
|
if (selectedPlusMemberMode === "free" /* FREE */) {
|
|
2960
|
-
return
|
|
3014
|
+
return void 0;
|
|
2961
3015
|
}
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
const product2 = plusMemberProducts?.find((p) => p.handle === handle);
|
|
2965
|
-
const variant2 = product2?.variants?.find((v) => v.sku === sku);
|
|
2966
|
-
return product2 && variant2 ? { product: product2, variant: variant2 } : null;
|
|
2967
|
-
}, [plusMemberProducts, memberSetting, selectedPlusMemberMode]);
|
|
3016
|
+
return selectedPlusMemberMode === "monthly" /* MONTHLY */ ? monthlyVariant : annualVariant;
|
|
3017
|
+
}, [monthlyVariant, annualVariant, selectedPlusMemberMode]);
|
|
2968
3018
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2969
3019
|
PlusMemberContext.Provider,
|
|
2970
3020
|
{
|
|
@@ -2988,8 +3038,9 @@ var PlusMemberProvider = ({
|
|
|
2988
3038
|
setShowTip,
|
|
2989
3039
|
showMoreShippingMethod,
|
|
2990
3040
|
setShowMoreShippingMethod,
|
|
2991
|
-
|
|
2992
|
-
|
|
3041
|
+
selectedPlusMemberVariant,
|
|
3042
|
+
monthlyVariant,
|
|
3043
|
+
annualVariant,
|
|
2993
3044
|
product,
|
|
2994
3045
|
showPlusMemberBenefit,
|
|
2995
3046
|
setShowPlusMemberBenefit,
|
|
@@ -3188,6 +3239,7 @@ exports.CUSTOMER_ATTRIBUTE_KEY = CUSTOMER_ATTRIBUTE_KEY;
|
|
|
3188
3239
|
exports.CUSTOMER_SCRIPT_GIFT_KEY = CUSTOMER_SCRIPT_GIFT_KEY;
|
|
3189
3240
|
exports.DeliveryPlusType = DeliveryPlusType;
|
|
3190
3241
|
exports.MAIN_PRODUCT_CODE = MAIN_PRODUCT_CODE;
|
|
3242
|
+
exports.MEMBER_PRICE_ATTRIBUTE_KEY = MEMBER_PRICE_ATTRIBUTE_KEY;
|
|
3191
3243
|
exports.OrderBasePriceType = OrderBasePriceType;
|
|
3192
3244
|
exports.OrderDiscountType = OrderDiscountType;
|
|
3193
3245
|
exports.PLUS_MEMBER_TYPE = PLUS_MEMBER_TYPE;
|
|
@@ -3240,13 +3292,12 @@ exports.useExposure = useExposure;
|
|
|
3240
3292
|
exports.useGeoLocation = useGeoLocation;
|
|
3241
3293
|
exports.useHasPlusMemberInCart = useHasPlusMemberInCart;
|
|
3242
3294
|
exports.useIntersection = useIntersection;
|
|
3243
|
-
exports.usePlusAnnualProductVariant = usePlusAnnualProductVariant;
|
|
3244
3295
|
exports.usePlusMemberCheckoutCustomAttributes = usePlusMemberCheckoutCustomAttributes;
|
|
3245
3296
|
exports.usePlusMemberContext = usePlusMemberContext;
|
|
3246
3297
|
exports.usePlusMemberDeliveryCodes = usePlusMemberDeliveryCodes;
|
|
3247
3298
|
exports.usePlusMemberItemCustomAttributes = usePlusMemberItemCustomAttributes;
|
|
3248
3299
|
exports.usePlusMemberNeedAddToCart = usePlusMemberNeedAddToCart;
|
|
3249
|
-
exports.
|
|
3300
|
+
exports.usePlusMemberVariants = usePlusMemberVariants;
|
|
3250
3301
|
exports.usePrice = usePrice;
|
|
3251
3302
|
exports.useProduct = useProduct;
|
|
3252
3303
|
exports.useProductUrl = useProductUrl;
|