@blocklet/launcher-workflow 1.5.60 → 1.5.63
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/lib/components/instance-operation.js +3 -3
- package/lib/components/stripe/checkout.js +23 -10
- package/lib/components/stripe/paying.js +19 -7
- package/lib/index.js +35 -2
- package/lib/locales/en.js +8 -4
- package/lib/locales/zh.js +6 -4
- package/lib/prepare.js +3 -3
- package/lib/purchase.js +46 -21
- package/package.json +8 -7
- package/lib/constant.js +0 -31
|
@@ -23,6 +23,8 @@ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
|
23
23
|
|
|
24
24
|
var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
|
|
25
25
|
|
|
26
|
+
var _launcherConstant = require("@blocklet/launcher-constant");
|
|
27
|
+
|
|
26
28
|
var _util = require("../util");
|
|
27
29
|
|
|
28
30
|
var _query = _interopRequireDefault(require("../hooks/query"));
|
|
@@ -33,8 +35,6 @@ var _router = _interopRequireDefault(require("../contexts/router"));
|
|
|
33
35
|
|
|
34
36
|
var _locale = require("../contexts/locale");
|
|
35
37
|
|
|
36
|
-
var _constant = require("../constant");
|
|
37
|
-
|
|
38
38
|
var _pageHeader = _interopRequireDefault(require("./page-header"));
|
|
39
39
|
|
|
40
40
|
var _launchResultMessage = _interopRequireDefault(require("./launch-result-message"));
|
|
@@ -92,7 +92,7 @@ function OperationPage(_ref) {
|
|
|
92
92
|
}
|
|
93
93
|
} = await api.get("/public/instances/".concat(nftId, "/status"));
|
|
94
94
|
|
|
95
|
-
if (instance.status >=
|
|
95
|
+
if (instance.status >= _launcherConstant.INSTANCE_STATUS.running) {
|
|
96
96
|
const url = (0, _util.getLaunchBlockletUrl)(instance.serverUrl, blockletMetaUrl, locale);
|
|
97
97
|
setLaunchState(pre => _objectSpread(_objectSpread({}, pre), {}, {
|
|
98
98
|
status: STATUS.success,
|
|
@@ -21,6 +21,8 @@ var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
|
|
|
21
21
|
|
|
22
22
|
var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
|
|
23
23
|
|
|
24
|
+
var _launcherConstant = require("@blocklet/launcher-constant");
|
|
25
|
+
|
|
24
26
|
var _locale = require("../../contexts/locale");
|
|
25
27
|
|
|
26
28
|
var _paying = _interopRequireDefault(require("./paying"));
|
|
@@ -34,7 +36,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
34
36
|
function CheckoutForm(_ref) {
|
|
35
37
|
let {
|
|
36
38
|
clientSecret,
|
|
37
|
-
|
|
39
|
+
onLoad
|
|
38
40
|
} = _ref;
|
|
39
41
|
const stripe = (0, _reactStripeJs.useStripe)();
|
|
40
42
|
const elements = (0, _reactStripeJs.useElements)();
|
|
@@ -104,7 +106,7 @@ function CheckoutForm(_ref) {
|
|
|
104
106
|
return;
|
|
105
107
|
}
|
|
106
108
|
|
|
107
|
-
|
|
109
|
+
onLoad();
|
|
108
110
|
};
|
|
109
111
|
|
|
110
112
|
return /*#__PURE__*/_react.default.createElement(Content, null, /*#__PURE__*/_react.default.createElement("form", {
|
|
@@ -132,7 +134,7 @@ const Content = _styledComponents.default.div.withConfig({
|
|
|
132
134
|
|
|
133
135
|
CheckoutForm.propTypes = {
|
|
134
136
|
clientSecret: _propTypes.default.string.isRequired,
|
|
135
|
-
|
|
137
|
+
onLoad: _propTypes.default.func.isRequired
|
|
136
138
|
};
|
|
137
139
|
|
|
138
140
|
function Checkout(_ref3) {
|
|
@@ -140,11 +142,16 @@ function Checkout(_ref3) {
|
|
|
140
142
|
clientSecret,
|
|
141
143
|
orderId,
|
|
142
144
|
userDid,
|
|
143
|
-
|
|
144
|
-
onCancel
|
|
145
|
+
onComplete,
|
|
146
|
+
onCancel,
|
|
147
|
+
status
|
|
145
148
|
} = _ref3;
|
|
146
149
|
const [open, setOpen] = (0, _react.useState)(true);
|
|
147
|
-
const
|
|
150
|
+
const {
|
|
151
|
+
t
|
|
152
|
+
} = (0, _locale.useLocaleContext)();
|
|
153
|
+
const [showCloseButton, setShowCloseButton] = (0, _react.useState)(true);
|
|
154
|
+
const [waitingCompleted, setWaitingCompleted] = (0, _react.useState)(status === _launcherConstant.ORDER_STATUS.paid);
|
|
148
155
|
const stripePromise = (0, _stripeJs.loadStripe)(window.env.stripePublicKey);
|
|
149
156
|
const options = {
|
|
150
157
|
clientSecret,
|
|
@@ -153,7 +160,9 @@ function Checkout(_ref3) {
|
|
|
153
160
|
}
|
|
154
161
|
};
|
|
155
162
|
|
|
156
|
-
const
|
|
163
|
+
const handleLoad = () => setWaitingCompleted(true);
|
|
164
|
+
|
|
165
|
+
const handlePaid = () => setShowCloseButton(false);
|
|
157
166
|
|
|
158
167
|
const handleClose = (_, reason) => {
|
|
159
168
|
if (reason === 'backdropClick') {
|
|
@@ -165,27 +174,31 @@ function Checkout(_ref3) {
|
|
|
165
174
|
};
|
|
166
175
|
|
|
167
176
|
return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
|
|
177
|
+
title: t('common.pay'),
|
|
178
|
+
showCloseButton: showCloseButton,
|
|
168
179
|
open: open,
|
|
169
180
|
onClose: handleClose,
|
|
170
181
|
disableEscapeKeyDown: true
|
|
171
182
|
}, waitingCompleted && /*#__PURE__*/_react.default.createElement(_paying.default, {
|
|
172
183
|
orderId: orderId,
|
|
173
184
|
userDid: userDid,
|
|
174
|
-
|
|
185
|
+
onComplete: onComplete,
|
|
186
|
+
onPaid: handlePaid
|
|
175
187
|
}), !waitingCompleted && /*#__PURE__*/_react.default.createElement(_reactStripeJs.Elements, {
|
|
176
188
|
options: options,
|
|
177
189
|
stripe: stripePromise
|
|
178
190
|
}, /*#__PURE__*/_react.default.createElement(CheckoutForm, {
|
|
179
191
|
clientSecret: clientSecret,
|
|
180
|
-
|
|
192
|
+
onLoad: handleLoad
|
|
181
193
|
})));
|
|
182
194
|
}
|
|
183
195
|
|
|
184
196
|
Checkout.propTypes = {
|
|
185
197
|
clientSecret: _propTypes.default.string.isRequired,
|
|
186
198
|
orderId: _propTypes.default.string.isRequired,
|
|
199
|
+
status: _propTypes.default.number.isRequired,
|
|
187
200
|
userDid: _propTypes.default.string.isRequired,
|
|
188
|
-
|
|
201
|
+
onComplete: _propTypes.default.func.isRequired,
|
|
189
202
|
onCancel: _propTypes.default.func
|
|
190
203
|
};
|
|
191
204
|
Checkout.defaultProps = {
|
|
@@ -17,6 +17,10 @@ var _useInterval = _interopRequireDefault(require("react-use/lib/useInterval"));
|
|
|
17
17
|
|
|
18
18
|
var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
|
|
19
19
|
|
|
20
|
+
var _launcherConstant = require("@blocklet/launcher-constant");
|
|
21
|
+
|
|
22
|
+
var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
|
|
23
|
+
|
|
20
24
|
var _locale = require("../../contexts/locale");
|
|
21
25
|
|
|
22
26
|
var _request = _interopRequireDefault(require("../../contexts/request"));
|
|
@@ -30,14 +34,15 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
30
34
|
function Paying(_ref) {
|
|
31
35
|
let {
|
|
32
36
|
orderId,
|
|
37
|
+
userDid,
|
|
33
38
|
onPaid,
|
|
34
|
-
|
|
39
|
+
onComplete
|
|
35
40
|
} = _ref;
|
|
36
41
|
const {
|
|
37
42
|
t
|
|
38
43
|
} = (0, _locale.useLocaleContext)();
|
|
39
44
|
const [needFetchOrderStatus, setNeedFetchOrderStatus] = (0, _react.useState)(true);
|
|
40
|
-
const [status, setStatus] = (0, _react.useState)(
|
|
45
|
+
const [status, setStatus] = (0, _react.useState)(_launcherConstant.ORDER_STATUS.unpaid);
|
|
41
46
|
const {
|
|
42
47
|
api
|
|
43
48
|
} = (0, _request.default)();
|
|
@@ -46,29 +51,36 @@ function Paying(_ref) {
|
|
|
46
51
|
data: order
|
|
47
52
|
} = await api.get("/orders/".concat(orderId, "?userDid=").concat(userDid));
|
|
48
53
|
|
|
49
|
-
if (order.status ===
|
|
54
|
+
if (order.status === _launcherConstant.ORDER_STATUS.nftSent) {
|
|
50
55
|
fetchOrder.cancel();
|
|
51
56
|
setNeedFetchOrderStatus(false);
|
|
52
|
-
setTimeout(() =>
|
|
57
|
+
setTimeout(() => onComplete({
|
|
53
58
|
nftId: order.nftId
|
|
54
59
|
}), 2000);
|
|
55
60
|
}
|
|
56
61
|
|
|
62
|
+
if (order.status >= _launcherConstant.ORDER_STATUS.paid) {
|
|
63
|
+
onPaid();
|
|
64
|
+
}
|
|
65
|
+
|
|
57
66
|
setStatus(order.status);
|
|
58
67
|
}, 3000);
|
|
59
68
|
(0, _useInterval.default)(fetchOrder, needFetchOrderStatus ? 3000 : null);
|
|
60
|
-
return /*#__PURE__*/_react.default.createElement(Content, null, status
|
|
69
|
+
return /*#__PURE__*/_react.default.createElement(Content, null, status <= _launcherConstant.ORDER_STATUS.paid && /*#__PURE__*/_react.default.createElement(_Spinner.default, null), status === _launcherConstant.ORDER_STATUS.nftSent && /*#__PURE__*/_react.default.createElement(_Check.default, {
|
|
70
|
+
className: "status--succeed_icon"
|
|
71
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
61
72
|
className: "status"
|
|
62
73
|
}, t("plan.paymentCredit.status.".concat(status))));
|
|
63
74
|
}
|
|
64
75
|
|
|
65
76
|
Paying.propTypes = {
|
|
66
77
|
orderId: _propTypes.default.string.isRequired,
|
|
78
|
+
userDid: _propTypes.default.string.isRequired,
|
|
67
79
|
onPaid: _propTypes.default.func.isRequired,
|
|
68
|
-
|
|
80
|
+
onComplete: _propTypes.default.func.isRequired
|
|
69
81
|
};
|
|
70
82
|
|
|
71
83
|
const Content = _styledComponents.default.div.withConfig({
|
|
72
84
|
displayName: "paying__Content",
|
|
73
85
|
componentId: "sc-1n02bp2-0"
|
|
74
|
-
})(["display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;.status{margin-top:32px;}"]);
|
|
86
|
+
})(["display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;.status{margin-top:32px;}.status--succeed_icon{background-color:#3ab39d;display:inline-flex;justify-content:center;align-items:center;width:48px;height:48px;border-radius:100%;color:#fff;}"]);
|
package/lib/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.Stripe = Stripe;
|
|
6
7
|
exports.default = Launcher;
|
|
7
8
|
|
|
8
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -17,6 +18,8 @@ var _launch = _interopRequireDefault(require("./launch"));
|
|
|
17
18
|
|
|
18
19
|
var _prepare = _interopRequireDefault(require("./prepare"));
|
|
19
20
|
|
|
21
|
+
var _checkout = _interopRequireDefault(require("./components/stripe/checkout"));
|
|
22
|
+
|
|
20
23
|
var _router = _interopRequireWildcard(require("./contexts/router"));
|
|
21
24
|
|
|
22
25
|
var _locales = require("./locales");
|
|
@@ -25,12 +28,18 @@ var _request = require("./contexts/request");
|
|
|
25
28
|
|
|
26
29
|
var _locale = require("./contexts/locale");
|
|
27
30
|
|
|
31
|
+
const _excluded = ["locale", "baseURL"];
|
|
32
|
+
|
|
28
33
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
34
|
|
|
30
35
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
36
|
|
|
32
37
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
38
|
|
|
39
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
40
|
+
|
|
41
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
42
|
+
|
|
34
43
|
// eslint-disable-next-line react/prop-types
|
|
35
44
|
function LaunchContent(_ref) {
|
|
36
45
|
let {
|
|
@@ -61,13 +70,37 @@ function LaunchContent(_ref) {
|
|
|
61
70
|
})));
|
|
62
71
|
}
|
|
63
72
|
|
|
64
|
-
function
|
|
73
|
+
function Stripe(_ref2) {
|
|
74
|
+
let {
|
|
75
|
+
locale,
|
|
76
|
+
baseURL
|
|
77
|
+
} = _ref2,
|
|
78
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
79
|
+
|
|
80
|
+
return /*#__PURE__*/_react.default.createElement(_request.RequestProvider, {
|
|
81
|
+
baseURL: baseURL
|
|
82
|
+
}, /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
|
|
83
|
+
translations: _locales.translations,
|
|
84
|
+
locale: locale
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement(_checkout.default, rest)));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
Stripe.propTypes = {
|
|
89
|
+
locale: _propTypes.default.string,
|
|
90
|
+
baseURL: _propTypes.default.string
|
|
91
|
+
};
|
|
92
|
+
Stripe.defaultProps = {
|
|
93
|
+
locale: 'en',
|
|
94
|
+
baseURL: '/'
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
function Launcher(_ref3) {
|
|
65
98
|
let {
|
|
66
99
|
Route,
|
|
67
100
|
routerPrefix,
|
|
68
101
|
locale,
|
|
69
102
|
baseURL
|
|
70
|
-
} =
|
|
103
|
+
} = _ref3;
|
|
71
104
|
return /*#__PURE__*/_react.default.createElement(_request.RequestProvider, {
|
|
72
105
|
baseURL: baseURL
|
|
73
106
|
}, /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
|
package/lib/locales/en.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
const {
|
|
4
|
+
ORDER_STATUS
|
|
5
|
+
} = require('@blocklet/launcher-constant');
|
|
6
|
+
|
|
3
7
|
module.exports = {
|
|
4
8
|
common: {
|
|
5
9
|
paymentMethod: 'Payment Method',
|
|
@@ -21,10 +25,10 @@ module.exports = {
|
|
|
21
25
|
loadListFailed: 'Plan list load error',
|
|
22
26
|
paymentCredit: {
|
|
23
27
|
status: {
|
|
24
|
-
unpaid: 'Waiting for payment',
|
|
25
|
-
paid: 'Payment completed, waiting for order completion',
|
|
26
|
-
|
|
27
|
-
expired: 'Order has expired'
|
|
28
|
+
[ORDER_STATUS.unpaid]: 'Waiting for payment',
|
|
29
|
+
[ORDER_STATUS.paid]: 'Payment completed, waiting for order completion',
|
|
30
|
+
[ORDER_STATUS.nftSent]: 'Completed',
|
|
31
|
+
[ORDER_STATUS.expired]: 'Order has expired'
|
|
28
32
|
}
|
|
29
33
|
},
|
|
30
34
|
useCrypto: 'Crypto',
|
package/lib/locales/zh.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _launcherConstant = require("@blocklet/launcher-constant");
|
|
4
|
+
|
|
3
5
|
module.exports = {
|
|
4
6
|
common: {
|
|
5
7
|
paymentMethod: '付款方式',
|
|
@@ -21,10 +23,10 @@ module.exports = {
|
|
|
21
23
|
loadListFailed: '加载节点类型列表出错',
|
|
22
24
|
paymentCredit: {
|
|
23
25
|
status: {
|
|
24
|
-
unpaid: '支付中',
|
|
25
|
-
paid: '支付完成, 等待订单完成',
|
|
26
|
-
|
|
27
|
-
expired: '订单已过期'
|
|
26
|
+
[_launcherConstant.ORDER_STATUS.unpaid]: '支付中',
|
|
27
|
+
[_launcherConstant.ORDER_STATUS.paid]: '支付完成, 等待订单完成',
|
|
28
|
+
[_launcherConstant.ORDER_STATUS.nftSent]: '已完成',
|
|
29
|
+
[_launcherConstant.ORDER_STATUS.expired]: '订单已过期'
|
|
28
30
|
}
|
|
29
31
|
},
|
|
30
32
|
useCrypto: '数字货币支付',
|
package/lib/prepare.js
CHANGED
|
@@ -23,14 +23,14 @@ var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl
|
|
|
23
23
|
|
|
24
24
|
var _FormHelperText = _interopRequireDefault(require("@material-ui/core/FormHelperText"));
|
|
25
25
|
|
|
26
|
+
var _launcherConstant = require("@blocklet/launcher-constant");
|
|
27
|
+
|
|
26
28
|
var _pageHeader = _interopRequireDefault(require("./components/page-header"));
|
|
27
29
|
|
|
28
30
|
var _request = _interopRequireDefault(require("./contexts/request"));
|
|
29
31
|
|
|
30
32
|
var _locale = require("./contexts/locale");
|
|
31
33
|
|
|
32
|
-
var _constant = require("./constant");
|
|
33
|
-
|
|
34
34
|
var _router = _interopRequireWildcard(require("./contexts/router"));
|
|
35
35
|
|
|
36
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -165,7 +165,7 @@ function PreparePage() {
|
|
|
165
165
|
|
|
166
166
|
const handleCloseAuthDialog = () => setShowLaunchInstanceDialog(false);
|
|
167
167
|
|
|
168
|
-
const isRedeem = nftId ===
|
|
168
|
+
const isRedeem = nftId === _launcherConstant.REDEEM_NFT_ID;
|
|
169
169
|
const headerScope = isRedeem ? 'redeem' : 'prepare';
|
|
170
170
|
const buttonScope = isRedeem ? 'redeem' : 'launch';
|
|
171
171
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
|
package/lib/purchase.js
CHANGED
|
@@ -15,6 +15,8 @@ var _lodash = _interopRequireDefault(require("lodash.get"));
|
|
|
15
15
|
|
|
16
16
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
17
17
|
|
|
18
|
+
var _Coins = require("@styled-icons/remix-fill/Coins");
|
|
19
|
+
|
|
18
20
|
var _util = require("@ocap/util");
|
|
19
21
|
|
|
20
22
|
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
@@ -27,15 +29,15 @@ var _utils = require("@arcblock/did-connect/lib/utils");
|
|
|
27
29
|
|
|
28
30
|
var _compactLayout = _interopRequireDefault(require("@blocklet/launcher-layout/lib/compact-layout"));
|
|
29
31
|
|
|
30
|
-
var _Alert = _interopRequireDefault(require("@material-ui/lab/Alert"));
|
|
31
|
-
|
|
32
32
|
var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
|
|
33
33
|
|
|
34
34
|
var _Tabs = _interopRequireDefault(require("@arcblock/ux/lib/Tabs"));
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _launcherConstant = require("@blocklet/launcher-constant");
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _Alert = _interopRequireDefault(require("@material-ui/lab/Alert"));
|
|
39
|
+
|
|
40
|
+
var _CreditCard = _interopRequireDefault(require("@material-ui/icons/CreditCard"));
|
|
39
41
|
|
|
40
42
|
var _plan = _interopRequireDefault(require("./components/plan"));
|
|
41
43
|
|
|
@@ -49,8 +51,6 @@ var _locale = require("./contexts/locale");
|
|
|
49
51
|
|
|
50
52
|
var _session = require("./contexts/session");
|
|
51
53
|
|
|
52
|
-
var _constant = require("./constant");
|
|
53
|
-
|
|
54
54
|
var _request = _interopRequireDefault(require("./contexts/request"));
|
|
55
55
|
|
|
56
56
|
var _router = _interopRequireWildcard(require("./contexts/router"));
|
|
@@ -61,6 +61,12 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
61
61
|
|
|
62
62
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
63
63
|
|
|
64
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
65
|
+
|
|
66
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
67
|
+
|
|
68
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
69
|
+
|
|
64
70
|
const formatTokenPrice = token => "".concat((0, _util.fromUnitToToken)(token.value, token.decimal), " ").concat(token.symbol);
|
|
65
71
|
|
|
66
72
|
const formatFiatPrice = price => "".concat(price.symbol || price.unit).concat(price.value);
|
|
@@ -77,11 +83,11 @@ function PurchasePage() {
|
|
|
77
83
|
session
|
|
78
84
|
} = (0, _session.useSessionContext)();
|
|
79
85
|
const {
|
|
80
|
-
t
|
|
81
|
-
locale
|
|
86
|
+
t
|
|
82
87
|
} = (0, _locale.useLocaleContext)();
|
|
83
88
|
const [paying, setPaying] = (0, _react.useState)(false);
|
|
84
89
|
const [paymentInfo, setPaymentInfo] = (0, _react.useState)(null);
|
|
90
|
+
const [buttonInFix, setButtonInFix] = (0, _react.useState)(false);
|
|
85
91
|
const [paymentType, setPaymentType] = (0, _react.useState)('crypto');
|
|
86
92
|
const routerPrefix = (0, _router.usePrefix)();
|
|
87
93
|
const userDid = query.get('userDid') || (0, _lodash.default)(session, 'user.did');
|
|
@@ -149,7 +155,7 @@ function PurchasePage() {
|
|
|
149
155
|
plans
|
|
150
156
|
} = plansState.value;
|
|
151
157
|
|
|
152
|
-
const
|
|
158
|
+
const handlePaid = _ref => {
|
|
153
159
|
let {
|
|
154
160
|
nftId
|
|
155
161
|
} = _ref;
|
|
@@ -206,10 +212,13 @@ function PurchasePage() {
|
|
|
206
212
|
try {
|
|
207
213
|
const {
|
|
208
214
|
data
|
|
209
|
-
} = await api.post(
|
|
215
|
+
} = await api.post('/pay', _objectSpread(_objectSpread({}, params), {}, {
|
|
216
|
+
userDid
|
|
217
|
+
}));
|
|
210
218
|
setPaymentInfo({
|
|
211
219
|
orderId: data.orderId,
|
|
212
|
-
clientSecret: data.clientSecret
|
|
220
|
+
clientSecret: data.clientSecret,
|
|
221
|
+
status: data.status
|
|
213
222
|
});
|
|
214
223
|
} catch (error) {
|
|
215
224
|
console.error(error);
|
|
@@ -219,8 +228,8 @@ function PurchasePage() {
|
|
|
219
228
|
};
|
|
220
229
|
|
|
221
230
|
const handleRedeem = () => {
|
|
222
|
-
|
|
223
|
-
nftId:
|
|
231
|
+
handlePaid({
|
|
232
|
+
nftId: _launcherConstant.REDEEM_NFT_ID
|
|
224
233
|
});
|
|
225
234
|
};
|
|
226
235
|
|
|
@@ -240,10 +249,24 @@ function PurchasePage() {
|
|
|
240
249
|
variant: "outlined",
|
|
241
250
|
color: "primary",
|
|
242
251
|
style: {
|
|
243
|
-
|
|
252
|
+
marginRight: '24px'
|
|
244
253
|
}
|
|
245
254
|
}, t('common.redeem'));
|
|
246
255
|
|
|
256
|
+
const bottomFix = type => {
|
|
257
|
+
switch (type) {
|
|
258
|
+
case 'fix':
|
|
259
|
+
setButtonInFix(true);
|
|
260
|
+
break;
|
|
261
|
+
|
|
262
|
+
case 'scroll':
|
|
263
|
+
setButtonInFix(false);
|
|
264
|
+
break;
|
|
265
|
+
|
|
266
|
+
default:
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
|
|
247
270
|
return /*#__PURE__*/_react.default.createElement(Container, null, isEmbed && /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
|
|
248
271
|
title: t('plan.title'),
|
|
249
272
|
subTitle: t('plan.subTitle')
|
|
@@ -252,9 +275,10 @@ function PurchasePage() {
|
|
|
252
275
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
253
276
|
className: "page-body-article"
|
|
254
277
|
}, /*#__PURE__*/_react.default.createElement(_compactLayout.default, {
|
|
278
|
+
onBottomFix: bottomFix,
|
|
255
279
|
bottom: plans.length ? /*#__PURE__*/_react.default.createElement("div", {
|
|
256
|
-
className: "button-container"
|
|
257
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
280
|
+
className: "button-container container-padding ".concat(buttonInFix ? 'has-shadow' : '')
|
|
281
|
+
}, /*#__PURE__*/_react.default.createElement(RedeemButton, null), /*#__PURE__*/_react.default.createElement(PayButton, null)) : ''
|
|
258
282
|
}, !isEmbed && /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
|
|
259
283
|
title: t('plan.title'),
|
|
260
284
|
subTitle: t('plan.subTitle')
|
|
@@ -267,7 +291,7 @@ function PurchasePage() {
|
|
|
267
291
|
})) : '', /*#__PURE__*/_react.default.createElement("div", {
|
|
268
292
|
className: "select-plan small-select-plan-".concat(plans.length)
|
|
269
293
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
270
|
-
className: "selector-container"
|
|
294
|
+
className: "selector-container container-padding"
|
|
271
295
|
}, plans.length ? plans.map(item => /*#__PURE__*/_react.default.createElement(_plan.default, {
|
|
272
296
|
key: item._id,
|
|
273
297
|
paymentType: paymentType,
|
|
@@ -279,7 +303,7 @@ function PurchasePage() {
|
|
|
279
303
|
popup: true,
|
|
280
304
|
action: "purchase",
|
|
281
305
|
checkFn: createRequest().get,
|
|
282
|
-
onSuccess:
|
|
306
|
+
onSuccess: handlePaid,
|
|
283
307
|
onClose: handleCloseAuthDialog,
|
|
284
308
|
checkTimeout: 60 * 5000,
|
|
285
309
|
extraParams: getPurchaseParams(),
|
|
@@ -295,8 +319,9 @@ function PurchasePage() {
|
|
|
295
319
|
clientSecret: paymentInfo.clientSecret,
|
|
296
320
|
orderId: paymentInfo.orderId,
|
|
297
321
|
userDid: userDid,
|
|
298
|
-
|
|
299
|
-
onCancel: handleCancelPay
|
|
322
|
+
onComplete: handlePaid,
|
|
323
|
+
onCancel: handleCancelPay,
|
|
324
|
+
status: paymentInfo.status
|
|
300
325
|
}));
|
|
301
326
|
}
|
|
302
327
|
|
|
@@ -308,7 +333,7 @@ const Center = _styledComponents.default.div.withConfig({
|
|
|
308
333
|
const Container = _styledComponents.default.div.withConfig({
|
|
309
334
|
displayName: "purchase__Container",
|
|
310
335
|
componentId: "sc-1knmtel-1"
|
|
311
|
-
})(["display:flex;flex-direction:column;width:100%;height:100%;.select-payment{display:flex;justify-content:center;align-items:center;padding-top:30px;}.select-plan{margin:48px auto;", "{margin:30px auto;}&.small-select-plan-2{max-width:780px;}&.small-select-plan-0,&.small-select-plan-1{max-width:460px;}}.page-body{position:relative;flex:1;
|
|
336
|
+
})(["display:flex;flex-direction:column;width:100%;height:100%;.select-payment{display:flex;justify-content:center;align-items:center;padding-top:30px;}.select-plan{margin:48px auto 33px;", "{margin:30px auto;}&.small-select-plan-2{max-width:780px;}&.small-select-plan-0,&.small-select-plan-1{max-width:460px;}}.page-body{position:relative;flex:1;margin-top:0;}.page-body-article{position:absolute;left:0;top:0;width:100%;height:100%;overflow-y:auto;}.selector-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin-top:18px;}.button-container{display:flex;justify-content:center;align-items:center;padding-bottom:15px;padding-top:15px;> button{width:200px;}&.has-shadow{box-shadow:rgba(0,0,0,0.05) 0 0 4px;}}.select-body-item{cursor:pointer;transition:background-color ease 0.2s,border ease 0.2s;}.selected{border-color:", ";cursor:default;}.container-padding{padding-left:24px;padding-right:24px;}"], props => props.theme.breakpoints.down('sm'), props => props.theme.palette.primary.main);
|
|
312
337
|
|
|
313
338
|
const PaymentLabel = _styledComponents.default.div.withConfig({
|
|
314
339
|
displayName: "purchase__PaymentLabel",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocklet/launcher-workflow",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.63",
|
|
4
4
|
"description": "Purchase components for Launcher UI",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -37,14 +37,15 @@
|
|
|
37
37
|
"react": ">=16.12.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@arcblock/did-connect": "^1.16.
|
|
41
|
-
"@arcblock/icons": "^1.16.
|
|
42
|
-
"@arcblock/ux": "^1.16.
|
|
43
|
-
"@blocklet/launcher-
|
|
40
|
+
"@arcblock/did-connect": "^1.16.43",
|
|
41
|
+
"@arcblock/icons": "^1.16.43",
|
|
42
|
+
"@arcblock/ux": "^1.16.43",
|
|
43
|
+
"@blocklet/launcher-constant": "1.5.63",
|
|
44
|
+
"@blocklet/launcher-layout": "1.5.63",
|
|
44
45
|
"@material-ui/core": "^4.12.3",
|
|
45
46
|
"@material-ui/icons": "^4.11.2",
|
|
46
47
|
"@material-ui/lab": "^4.0.0-alpha.60",
|
|
47
|
-
"@ocap/util": "^1.14.
|
|
48
|
+
"@ocap/util": "^1.14.25",
|
|
48
49
|
"@stripe/react-stripe-js": "^1.7.0",
|
|
49
50
|
"@stripe/stripe-js": "^1.22.0",
|
|
50
51
|
"@styled-icons/remix-fill": "^10.18.0",
|
|
@@ -66,5 +67,5 @@
|
|
|
66
67
|
"babel-plugin-inline-react-svg": "^2.0.1",
|
|
67
68
|
"babel-plugin-styled-components": "^1.10.7"
|
|
68
69
|
},
|
|
69
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "f75fa0509639a6e0490d1bd4443b8028e237675c"
|
|
70
71
|
}
|
package/lib/constant.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.fromInstanceStatus = exports.REDEEM_NFT_ID = exports.INSTANCE_STATUS = void 0;
|
|
7
|
-
const INSTANCE_STATUS = Object.freeze({
|
|
8
|
-
unknown: -1,
|
|
9
|
-
pending: 0,
|
|
10
|
-
starting: 10,
|
|
11
|
-
running: 20,
|
|
12
|
-
restarting: 30,
|
|
13
|
-
stopping: 40,
|
|
14
|
-
stopped: 50,
|
|
15
|
-
terminated: 60,
|
|
16
|
-
expired: 70,
|
|
17
|
-
error: 80,
|
|
18
|
-
createError: 90,
|
|
19
|
-
waiting: 10000
|
|
20
|
-
});
|
|
21
|
-
exports.INSTANCE_STATUS = INSTANCE_STATUS;
|
|
22
|
-
const statusInstanceMap = Object.keys(INSTANCE_STATUS).reduce((acc, cur) => {
|
|
23
|
-
acc[INSTANCE_STATUS[cur]] = cur;
|
|
24
|
-
return acc;
|
|
25
|
-
}, {});
|
|
26
|
-
|
|
27
|
-
const fromInstanceStatus = status => statusInstanceMap[status];
|
|
28
|
-
|
|
29
|
-
exports.fromInstanceStatus = fromInstanceStatus;
|
|
30
|
-
const REDEEM_NFT_ID = 'redeem';
|
|
31
|
-
exports.REDEEM_NFT_ID = REDEEM_NFT_ID;
|