@shopbb/helium 0.7.0 → 0.7.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/components/AddToCartButton.d.ts +2 -0
- package/dist/components/AddToCartButton.d.ts.map +1 -1
- package/dist/components/AddToCartButton.js +2 -2
- package/dist/components/AddToCartButton.js.map +1 -1
- package/dist/components/DiscountSelector.d.ts +2 -22
- package/dist/components/DiscountSelector.d.ts.map +1 -1
- package/dist/components/DiscountSelector.js +5 -4
- package/dist/components/DiscountSelector.js.map +1 -1
- package/package.json +1 -1
- package/src/components/AddToCartButton.tsx +4 -1
- package/src/components/DiscountSelector.tsx +7 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddToCartButton.d.ts","sourceRoot":"","sources":["../../src/components/AddToCartButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,oBAAoB;IACnC,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,kDAAkD;IAClD,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,kBAAkB;IAClB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"AddToCartButton.d.ts","sourceRoot":"","sources":["../../src/components/AddToCartButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,oBAAoB;IACnC,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,kDAAkD;IAClD,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,kBAAkB;IAClB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,sBAAsB;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAwC1D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { CartForm } from './CartForm';
|
|
3
3
|
export function AddToCartButton(props) {
|
|
4
|
-
const { variantId, quantity = 1, attributes, selectedVariant, unavailableText = '缺货', disabled = false, className, route = '/cart', children = '加入购物车', } = props;
|
|
4
|
+
const { variantId, quantity = 1, attributes, selectedVariant, unavailableText = '缺货', loadingText = '加入中...', disabled = false, className, route = '/cart', children = '加入购物车', } = props;
|
|
5
5
|
const line = { merchandiseId: variantId, quantity };
|
|
6
6
|
if (attributes && attributes.length > 0)
|
|
7
7
|
line.attributes = attributes;
|
|
@@ -9,7 +9,7 @@ export function AddToCartButton(props) {
|
|
|
9
9
|
line.selectedVariant = selectedVariant;
|
|
10
10
|
return (_jsx(CartForm, { route: route, action: CartForm.ACTIONS.LinesAdd, inputs: { lines: [line] }, children: (fetcher) => {
|
|
11
11
|
const submitting = fetcher.state !== 'idle';
|
|
12
|
-
return (_jsx("button", { type: "submit", className: className, disabled: disabled || submitting, "data-add-to-cart": true, "data-loading": submitting ? '' : undefined, children: submitting ?
|
|
12
|
+
return (_jsx("button", { type: "submit", className: className, disabled: disabled || submitting, "data-add-to-cart": true, "data-loading": submitting ? '' : undefined, children: submitting ? loadingText : disabled ? unavailableText : children }));
|
|
13
13
|
} }));
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=AddToCartButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddToCartButton.js","sourceRoot":"","sources":["../../src/components/AddToCartButton.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"AddToCartButton.js","sourceRoot":"","sources":["../../src/components/AddToCartButton.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAC;AAuB1D,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EACJ,SAAS,EACT,QAAQ,GAAG,CAAC,EACZ,UAAU,EACV,eAAe,EACf,eAAe,GAAG,IAAI,EACtB,WAAW,GAAG,QAAQ,EACtB,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,GACnB,GAAG,KAAK,CAAC;IAEV,MAAM,IAAI,GAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACnE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACtE,IAAI,eAAe;QAAE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAE5D,OAAO,CACL,KAAC,QAAQ,IACP,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,EACjC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,YAExB,CAAC,OAAO,EAAE,EAAE;YACX,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC;YAC5C,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,IAAI,UAAU,4CAElB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,YAExC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,GAC1D,CACV,CAAC;QACJ,CAAC,GACQ,CACZ,CAAC;AACJ,CAAC"}
|
|
@@ -9,28 +9,8 @@
|
|
|
9
9
|
* - 商家 loader 拉 myDiscountClaims + cart.appliedDiscountClaim,传给本组件
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
claimedAt: string;
|
|
15
|
-
expiresAt: string | null;
|
|
16
|
-
isExpired: boolean;
|
|
17
|
-
remainingUses: number;
|
|
18
|
-
discount: {
|
|
19
|
-
id: string;
|
|
20
|
-
code: string | null;
|
|
21
|
-
title: string;
|
|
22
|
-
valueType: 'PERCENTAGE' | 'FIXED_AMOUNT' | 'FREE_SHIPPING';
|
|
23
|
-
valuePercentage: number | null;
|
|
24
|
-
valueAmount: {
|
|
25
|
-
amount: string;
|
|
26
|
-
currencyCode: string;
|
|
27
|
-
} | null;
|
|
28
|
-
minSubtotal: {
|
|
29
|
-
amount: string;
|
|
30
|
-
currencyCode: string;
|
|
31
|
-
} | null;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
12
|
+
import type { DiscountClaim } from './DiscountComponents';
|
|
13
|
+
export type { DiscountClaim };
|
|
34
14
|
export interface AppliedDiscountClaim {
|
|
35
15
|
claimId: string;
|
|
36
16
|
code: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscountSelector.d.ts","sourceRoot":"","sources":["../../src/components/DiscountSelector.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DiscountSelector.d.ts","sourceRoot":"","sources":["../../src/components/DiscountSelector.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,oDAAoD;IACpD,YAAY,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,eAAe;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACjD,QAAQ,EAAE,MAAM,IAAI,CAAC;KACtB,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CA8E5D"}
|
|
@@ -41,13 +41,14 @@ function DiscountPickerSheet({ claims, currentClaimId, onClose, }) {
|
|
|
41
41
|
}) })] }) }));
|
|
42
42
|
}
|
|
43
43
|
function formatValue(c) {
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
const v = c.discount.value;
|
|
45
|
+
if (v.__typename === 'DiscountPercentage') {
|
|
46
|
+
const pay = (100 - v.percentage) / 10;
|
|
46
47
|
const txt = Number.isInteger(pay) ? String(pay) : pay.toFixed(1);
|
|
47
48
|
return `${txt} 折`;
|
|
48
49
|
}
|
|
49
|
-
if (
|
|
50
|
-
return `− ¥${
|
|
50
|
+
if (v.__typename === 'DiscountAmount') {
|
|
51
|
+
return `− ¥${v.amount.amount}`;
|
|
51
52
|
}
|
|
52
53
|
return '免运费';
|
|
53
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscountSelector.js","sourceRoot":"","sources":["../../src/components/DiscountSelector.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"DiscountSelector.js","sourceRoot":"","sources":["../../src/components/DiscountSelector.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAqCjD,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,EACJ,QAAQ,GAAG,EAAE,EACb,YAAY,EACZ,iBAAiB,EACjB,eAAe,GAAG,KAAK,EACvB,uBAAuB,EACvB,SAAS,EACT,aAAa,GACd,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,uBAAuB,KAAK,SAAS,CAAC,CAAC,CAAC,4BAAG,uBAAuB,GAAI,CAAC,CAAC,CAAC,CAC9E,oEAAwC,SAAS,EAAE,SAAS,aAC1D,oFAAsB,EACtB,YAAG,IAAI,EAAC,mBAAmB,mCAAQ,IAC/B,CACP,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,YAAY,EAAE,OAAO,IAAI,IAAI,CAAC;IACrD,MAAM,YAAY,GAAG,YAAY,EAAE,KAAK,IAAI,iBAAiB,EAAE,KAAK,CAAC;IACrE,MAAM,WAAW,GAAG,YAAY,EAAE,IAAI,IAAI,iBAAiB,EAAE,IAAI,CAAC;IAElE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAEpF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpD,OAAO,CACL,wEAA6C,SAAS,EAAE,SAAS,YAC/D,wEAAoB,GAChB,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BACE,8CAA4B,SAAS,EAAE,SAAS,YAC7C,cAAc,CAAC,CAAC,CAAC,CAChB,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;oBAC5B,IAAI,EAAE,WAAW,IAAI,IAAI;oBACzB,KAAK,EAAE,YAAY,IAAI,EAAE;oBACzB,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE;oBACnF,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;iBAC9B,CAAC,CAAC,CAAC,CAAC,CACH,gDACE,6CACE,oEAA2B,EAC3B,+CAAoB,YAAY,GAAU,EACzC,iBAAiB,IAAI,CACpB,2DAAoB,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAI,IAAO,CACjK,IACG,EACN,8CACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,6BAAa,GAC3D,IACF,CACP,CACF,CAAC,CAAC,CAAC,CACF,sDACE,2CACE,0DAAoB,eAAe,CAAC,MAAM,6CAAe,GACrD,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,6BAAa,IAC3D,CACP,GACG,EAEL,IAAI,IAAI,CACP,KAAC,mBAAmB,IAClB,MAAM,EAAE,eAAe,EACvB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAC7B,CACH,IACA,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,EAC3B,MAAM,EAAE,cAAc,EAAE,OAAO,GAKhC;IACC,OAAO,CACL,oDAAkC,OAAO,EAAE,OAAO,YAChD,mDAAgC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,aACjE,qDACE,0DAAc,EACd,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,iDAA6B,IAC/D,EACN,iDACG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAChB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;wBAChE,MAAM,SAAS,GAAG,cAAc,KAAK,EAAE,CAAC;wBACxC,OAAO,CACL,KAAC,QAAQ,IAEP,MAAM,EAAC,sBAAsB,EAC7B,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAEtB,CAAC,OAAO,EAAE,EAAE,CAAC,CACZ,kBACE,IAAI,EAAC,QAAQ,2CAEC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACxC,QAAQ,EAAE,OAAO,CAAC,KAAK,KAAK,MAAM,aAElC,mDACE,kDAAuB,WAAW,CAAC,CAAC,CAAC,GAAO,EAC3C,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CACzB,6DACI,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,GAAI,qBAC3G,CACP,IACG,EACN,oDACE,kDAAuB,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAO,EAC7C,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,iDAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAO,EAC/D,CAAC,CAAC,SAAS,IAAI,CACd,qDAAwB,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAU,CAC1D,IACG,EACL,SAAS,IAAI,sFAAwC,IAC/C,CACV,IA5BI,CAAC,CAAC,EAAE,CA6BA,CACZ,CAAC;oBACJ,CAAC,CAAC,GACE,IACF,GACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAgB;IACnC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC3B,IAAI,CAAC,CAAC,UAAU,KAAK,oBAAoB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,GAAG,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,KAAK,gBAAgB,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -31,6 +31,8 @@ export interface AddToCartButtonProps {
|
|
|
31
31
|
selectedVariant?: any;
|
|
32
32
|
/** Disabled 文本 */
|
|
33
33
|
unavailableText?: React.ReactNode;
|
|
34
|
+
/** Loading 文本(提交中) */
|
|
35
|
+
loadingText?: React.ReactNode;
|
|
34
36
|
disabled?: boolean;
|
|
35
37
|
className?: string;
|
|
36
38
|
/** 提交 route,默认 /cart */
|
|
@@ -46,6 +48,7 @@ export function AddToCartButton(props: AddToCartButtonProps) {
|
|
|
46
48
|
attributes,
|
|
47
49
|
selectedVariant,
|
|
48
50
|
unavailableText = '缺货',
|
|
51
|
+
loadingText = '加入中...',
|
|
49
52
|
disabled = false,
|
|
50
53
|
className,
|
|
51
54
|
route = '/cart',
|
|
@@ -72,7 +75,7 @@ export function AddToCartButton(props: AddToCartButtonProps) {
|
|
|
72
75
|
data-add-to-cart
|
|
73
76
|
data-loading={submitting ? '' : undefined}
|
|
74
77
|
>
|
|
75
|
-
{submitting ?
|
|
78
|
+
{submitting ? loadingText : disabled ? unavailableText : children}
|
|
76
79
|
</button>
|
|
77
80
|
);
|
|
78
81
|
}}
|
|
@@ -13,24 +13,9 @@ import * as React from 'react';
|
|
|
13
13
|
import { Money } from './Money';
|
|
14
14
|
import { CartForm } from './CartForm';
|
|
15
15
|
import { formatDate } from '../utils/formatDate';
|
|
16
|
+
import type { DiscountClaim } from './DiscountComponents';
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
export interface DiscountClaim {
|
|
19
|
-
id: string;
|
|
20
|
-
claimedAt: string;
|
|
21
|
-
expiresAt: string | null;
|
|
22
|
-
isExpired: boolean;
|
|
23
|
-
remainingUses: number;
|
|
24
|
-
discount: {
|
|
25
|
-
id: string;
|
|
26
|
-
code: string | null;
|
|
27
|
-
title: string;
|
|
28
|
-
valueType: 'PERCENTAGE' | 'FIXED_AMOUNT' | 'FREE_SHIPPING';
|
|
29
|
-
valuePercentage: number | null;
|
|
30
|
-
valueAmount: { amount: string; currencyCode: string } | null;
|
|
31
|
-
minSubtotal: { amount: string; currencyCode: string } | null;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
18
|
+
export type { DiscountClaim };
|
|
34
19
|
|
|
35
20
|
export interface AppliedDiscountClaim {
|
|
36
21
|
claimId: string;
|
|
@@ -203,13 +188,14 @@ function DiscountPickerSheet({
|
|
|
203
188
|
}
|
|
204
189
|
|
|
205
190
|
function formatValue(c: DiscountClaim): string {
|
|
206
|
-
|
|
207
|
-
|
|
191
|
+
const v = c.discount.value;
|
|
192
|
+
if (v.__typename === 'DiscountPercentage') {
|
|
193
|
+
const pay = (100 - v.percentage) / 10;
|
|
208
194
|
const txt = Number.isInteger(pay) ? String(pay) : pay.toFixed(1);
|
|
209
195
|
return `${txt} 折`;
|
|
210
196
|
}
|
|
211
|
-
if (
|
|
212
|
-
return `− ¥${
|
|
197
|
+
if (v.__typename === 'DiscountAmount') {
|
|
198
|
+
return `− ¥${v.amount.amount}`;
|
|
213
199
|
}
|
|
214
200
|
return '免运费';
|
|
215
201
|
}
|