@blocklet/launcher-workflow 2.3.80 → 2.3.82
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/es/components/in-progress-session.js +2 -2
- package/es/components/launch-dedicated.js +16 -2
- package/es/components/launch-serverless.js +2 -2
- package/es/paid.js +1 -1
- package/es/prepare.js +7 -7
- package/es/util.js +3 -3
- package/lib/components/in-progress-session.js +2 -2
- package/lib/components/launch-dedicated.js +17 -4
- package/lib/components/launch-serverless.js +2 -2
- package/lib/paid.js +1 -1
- package/lib/prepare.js +7 -7
- package/lib/util.js +3 -3
- package/package.json +4 -4
- package/es/checkout.js +0 -601
- package/es/components/plan.js +0 -443
- package/es/purchase.js +0 -675
- package/lib/checkout.js +0 -498
- package/lib/components/plan.js +0 -322
- package/lib/purchase.js +0 -603
package/es/checkout.js
DELETED
|
@@ -1,601 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react-hooks/exhaustive-deps */
|
|
2
|
-
import Dialog from '@arcblock/ux/lib/Dialog';
|
|
3
|
-
import { NFT_TYPE_DEDICATE, NFT_TYPE_SERVERLESS } from '@blocklet/launcher-util/es/constant';
|
|
4
|
-
import { getBlockletDisplayName } from '@blocklet/launcher-util/es/util';
|
|
5
|
-
import Button from '@blocklet/launcher-ux/lib/button';
|
|
6
|
-
import useMobile from '@blocklet/launcher-ux/lib/use-mobile';
|
|
7
|
-
import Payment from '@blocklet/payment/lib/payment';
|
|
8
|
-
import styled from '@emotion/styled';
|
|
9
|
-
import Grid from '@mui/material/Grid';
|
|
10
|
-
import Skeleton from '@mui/material/Skeleton';
|
|
11
|
-
import dsbridge from 'dsbridge';
|
|
12
|
-
import get from 'lodash.get';
|
|
13
|
-
import PropTypes from 'prop-types';
|
|
14
|
-
import React, { useEffect } from 'react';
|
|
15
|
-
import { useNavigate, useSearchParams } from 'react-router-dom';
|
|
16
|
-
import useAsync from 'react-use/lib/useAsync';
|
|
17
|
-
import useSetState from 'react-use/lib/useSetState';
|
|
18
|
-
import joinURL from 'url-join';
|
|
19
|
-
import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
|
|
20
|
-
import Confirm from '@arcblock/ux/lib/Dialog/confirm';
|
|
21
|
-
import ResultMessage from '@blocklet/launcher-layout/lib/launch-result-message';
|
|
22
|
-
import formatError from '@blocklet/launcher-util/es/format-error';
|
|
23
|
-
var SpaceIcon = function SpaceIcon(props) {
|
|
24
|
-
return /*#__PURE__*/_jsxs("svg", {
|
|
25
|
-
...props,
|
|
26
|
-
children: [/*#__PURE__*/_jsx("rect", {
|
|
27
|
-
width: "40",
|
|
28
|
-
height: "40",
|
|
29
|
-
rx: "8",
|
|
30
|
-
fill: "url(#a)"
|
|
31
|
-
}), /*#__PURE__*/_jsxs("defs", {
|
|
32
|
-
children: [/*#__PURE__*/_jsx("pattern", {
|
|
33
|
-
id: "a",
|
|
34
|
-
patternContentUnits: "objectBoundingBox",
|
|
35
|
-
width: "1",
|
|
36
|
-
height: "1",
|
|
37
|
-
children: /*#__PURE__*/_jsx("use", {
|
|
38
|
-
xlinkHref: "#b",
|
|
39
|
-
transform: "scale(.00833)"
|
|
40
|
-
})
|
|
41
|
-
}), /*#__PURE__*/_jsx("image", {
|
|
42
|
-
id: "b",
|
|
43
|
-
width: "120",
|
|
44
|
-
height: "120",
|
|
45
|
-
xlinkHref: "data:image/png;base64,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"
|
|
46
|
-
})]
|
|
47
|
-
})]
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
SpaceIcon.defaultProps = {
|
|
51
|
-
width: "40",
|
|
52
|
-
height: "40",
|
|
53
|
-
fill: "none",
|
|
54
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
55
|
-
xmlnsXlink: "http://www.w3.org/1999/xlink"
|
|
56
|
-
};
|
|
57
|
-
import Agreement from './components/agreement';
|
|
58
|
-
import Checkbox from './components/checkbox';
|
|
59
|
-
import Layout from './components/layout';
|
|
60
|
-
import Body from './components/layout/body';
|
|
61
|
-
import Footer from './components/layout/footer';
|
|
62
|
-
import Header from './components/layout/header';
|
|
63
|
-
import { useLocaleContext } from './contexts/locale';
|
|
64
|
-
import useRequest from './contexts/request';
|
|
65
|
-
import { useSessionContext } from './contexts/session';
|
|
66
|
-
import { useWorkflowContext } from './contexts/workflow';
|
|
67
|
-
import { BLOCKLET_STORE_URL, getPrice, launchSession } from './util';
|
|
68
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
69
|
-
function CheckoutPage({
|
|
70
|
-
blocklet
|
|
71
|
-
}) {
|
|
72
|
-
const {
|
|
73
|
-
t,
|
|
74
|
-
locale
|
|
75
|
-
} = useLocaleContext();
|
|
76
|
-
const {
|
|
77
|
-
session,
|
|
78
|
-
events
|
|
79
|
-
} = useSessionContext();
|
|
80
|
-
const [params] = useSearchParams();
|
|
81
|
-
const [state, setState] = useSetState({
|
|
82
|
-
error: '',
|
|
83
|
-
showAgreement: false,
|
|
84
|
-
showPayment: false,
|
|
85
|
-
showAgreeHint: false,
|
|
86
|
-
showPaidDialog: {
|
|
87
|
-
open: false,
|
|
88
|
-
nftId: ''
|
|
89
|
-
},
|
|
90
|
-
agreed: true,
|
|
91
|
-
paying: false,
|
|
92
|
-
planId: params.get('planId'),
|
|
93
|
-
sessionId: params.get('sessionId'),
|
|
94
|
-
paymentMethod: params.get('paymentMethod'),
|
|
95
|
-
autoLogin: true
|
|
96
|
-
});
|
|
97
|
-
const browser = useBrowser();
|
|
98
|
-
const navigate = useNavigate();
|
|
99
|
-
const {
|
|
100
|
-
create,
|
|
101
|
-
api: launchSessionAPI
|
|
102
|
-
} = useRequest();
|
|
103
|
-
const {
|
|
104
|
-
mobileSize,
|
|
105
|
-
isMobile
|
|
106
|
-
} = useMobile();
|
|
107
|
-
const {
|
|
108
|
-
routerPrefix,
|
|
109
|
-
didPayPrefix,
|
|
110
|
-
embed,
|
|
111
|
-
isPurchaseOnly
|
|
112
|
-
} = useWorkflowContext();
|
|
113
|
-
const api = create({
|
|
114
|
-
baseURL: didPayPrefix
|
|
115
|
-
});
|
|
116
|
-
useEffect(() => {
|
|
117
|
-
if (isPurchaseOnly) {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
if (session.user) {
|
|
121
|
-
launchSession.connect(launchSessionAPI, routerPrefix, state.sessionId, session.user.did);
|
|
122
|
-
}
|
|
123
|
-
}, [session.user]);
|
|
124
|
-
const enableBlockletAgreement = !!blocklet;
|
|
125
|
-
const context = useAsync(async () => {
|
|
126
|
-
const [{
|
|
127
|
-
data: {
|
|
128
|
-
data: paymentMethods
|
|
129
|
-
}
|
|
130
|
-
}, {
|
|
131
|
-
data: {
|
|
132
|
-
data: plan
|
|
133
|
-
}
|
|
134
|
-
}] = await Promise.all([api.get('/payment-methods'), api.get(`/plans/${state.planId}`)]);
|
|
135
|
-
if (!plan || paymentMethods.length === 0) {
|
|
136
|
-
throw new Error(t('purchase.noProducts'));
|
|
137
|
-
}
|
|
138
|
-
if (paymentMethods.length > 0 && !state.paymentMethod) {
|
|
139
|
-
setState({
|
|
140
|
-
paymentMethod: paymentMethods[0]._id
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
return {
|
|
144
|
-
paymentMethods,
|
|
145
|
-
plan
|
|
146
|
-
};
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
// 用户退出的时候自动重新创建启动会话
|
|
150
|
-
useEffect(() => {
|
|
151
|
-
if (isPurchaseOnly) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
events.on('logout', () => {
|
|
155
|
-
const metaUrl = params.get('blocklet_meta_url');
|
|
156
|
-
launchSession.create(launchSessionAPI, routerPrefix, metaUrl, (err, launch) => {
|
|
157
|
-
setState({
|
|
158
|
-
sessionId: launch._id
|
|
159
|
-
});
|
|
160
|
-
params.set('sessionId', launch._id);
|
|
161
|
-
const type = get(context.value?.plan, 'extra.type') || 'serverless';
|
|
162
|
-
launchSession.select(launchSessionAPI, routerPrefix, launch._id, type, state.planId);
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
}, []);
|
|
166
|
-
const switchPayment = method => {
|
|
167
|
-
setState({
|
|
168
|
-
paymentMethod: method
|
|
169
|
-
});
|
|
170
|
-
};
|
|
171
|
-
const handleCancelPay = () => {
|
|
172
|
-
setState({
|
|
173
|
-
showPayment: false,
|
|
174
|
-
paying: false
|
|
175
|
-
});
|
|
176
|
-
};
|
|
177
|
-
const ensureLogin = () => {
|
|
178
|
-
return new Promise(resolve => {
|
|
179
|
-
if (!session.user) {
|
|
180
|
-
session.login(() => {
|
|
181
|
-
resolve();
|
|
182
|
-
});
|
|
183
|
-
} else {
|
|
184
|
-
resolve();
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
};
|
|
188
|
-
const handlePay = () => {
|
|
189
|
-
if (enableBlockletAgreement && !state.agreed) {
|
|
190
|
-
setState({
|
|
191
|
-
showAgreeHint: true
|
|
192
|
-
});
|
|
193
|
-
setTimeout(() => {
|
|
194
|
-
setState({
|
|
195
|
-
showAgreeHint: false
|
|
196
|
-
});
|
|
197
|
-
}, 2000);
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
if (browser.wallet) {
|
|
201
|
-
ensureLogin().then(() => {
|
|
202
|
-
setState({
|
|
203
|
-
showPayment: true,
|
|
204
|
-
paying: true,
|
|
205
|
-
autoLogin: false
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
} else {
|
|
209
|
-
setState({
|
|
210
|
-
showPayment: true,
|
|
211
|
-
paying: true,
|
|
212
|
-
autoLogin: true
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
const handleConnected = result => {
|
|
217
|
-
if (isPurchaseOnly) {
|
|
218
|
-
session.refresh();
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
launchSession.connect(launchSessionAPI, routerPrefix, state.sessionId, result.did, () => {
|
|
222
|
-
session.refresh();
|
|
223
|
-
});
|
|
224
|
-
};
|
|
225
|
-
const handlePaid = ({
|
|
226
|
-
nftId,
|
|
227
|
-
nftState
|
|
228
|
-
}) => {
|
|
229
|
-
if ((nftState.tags || []).includes(NFT_TYPE_SERVERLESS)) {
|
|
230
|
-
if (!embed) {
|
|
231
|
-
setState({
|
|
232
|
-
showPaidDialog: {
|
|
233
|
-
open: true,
|
|
234
|
-
nftId
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
handleCancelPay();
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
params.set('launchType', 'serverless');
|
|
241
|
-
}
|
|
242
|
-
if (isPurchaseOnly && !(nftState.tags || []).includes(NFT_TYPE_DEDICATE)) {
|
|
243
|
-
handleCancelPay();
|
|
244
|
-
dsbridge.call('arcClosePage');
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
handleCancelPay();
|
|
248
|
-
navigate({
|
|
249
|
-
pathname: joinURL(routerPrefix, `/launch/${nftId}`),
|
|
250
|
-
search: params.toString()
|
|
251
|
-
});
|
|
252
|
-
};
|
|
253
|
-
const handlePayFailed = () => {
|
|
254
|
-
// TODO: Toast 错误
|
|
255
|
-
handleCancelPay();
|
|
256
|
-
};
|
|
257
|
-
const calculateTotalPayment = prices => {
|
|
258
|
-
if (!state.paymentMethod) {
|
|
259
|
-
return '';
|
|
260
|
-
}
|
|
261
|
-
const providerName = paymentMethods?.find(x => x._id === state.paymentMethod)?.provider.name;
|
|
262
|
-
return getPrice(prices, providerName);
|
|
263
|
-
};
|
|
264
|
-
const toggleAgreement = () => setState({
|
|
265
|
-
agreed: !state.agreed
|
|
266
|
-
});
|
|
267
|
-
const {
|
|
268
|
-
paymentMethods,
|
|
269
|
-
plan
|
|
270
|
-
} = context.value || {};
|
|
271
|
-
const paymentMethod = paymentMethods?.find(x => x._id === state.paymentMethod);
|
|
272
|
-
const providerName = paymentMethod?.provider.name;
|
|
273
|
-
return /*#__PURE__*/_jsxs(Container, {
|
|
274
|
-
mobileSize: mobileSize,
|
|
275
|
-
enableBlockletAgreement: enableBlockletAgreement,
|
|
276
|
-
children: [/*#__PURE__*/_jsx(Header, {
|
|
277
|
-
title: t('checkout.pageTitle')
|
|
278
|
-
}), context.error && /*#__PURE__*/_jsx(Body, {
|
|
279
|
-
children: /*#__PURE__*/_jsx(ResultMessage, {
|
|
280
|
-
variant: "error",
|
|
281
|
-
title: t('common.error'),
|
|
282
|
-
subTitle: formatError(context.error)
|
|
283
|
-
})
|
|
284
|
-
}), !context.error && /*#__PURE__*/_jsxs(_Fragment, {
|
|
285
|
-
children: [/*#__PURE__*/_jsxs(Body, {
|
|
286
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
287
|
-
className: "header",
|
|
288
|
-
children: t('common.details')
|
|
289
|
-
}), context.loading ? /*#__PURE__*/_jsx(Skeleton, {
|
|
290
|
-
className: "skeleton",
|
|
291
|
-
sx: {
|
|
292
|
-
width: '100%',
|
|
293
|
-
height: '100%'
|
|
294
|
-
}
|
|
295
|
-
}) : /*#__PURE__*/_jsxs("div", {
|
|
296
|
-
className: "space details",
|
|
297
|
-
children: [/*#__PURE__*/_jsxs("div", {
|
|
298
|
-
className: "basic",
|
|
299
|
-
children: [/*#__PURE__*/_jsx(SpaceIcon, {}), /*#__PURE__*/_jsxs("div", {
|
|
300
|
-
className: "basic-info",
|
|
301
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
302
|
-
className: "title",
|
|
303
|
-
children: plan.name[locale]
|
|
304
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
305
|
-
className: "sub-title",
|
|
306
|
-
children: t('common.space')
|
|
307
|
-
})]
|
|
308
|
-
})]
|
|
309
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
310
|
-
className: "price",
|
|
311
|
-
children: getPrice(plan.prices, providerName)
|
|
312
|
-
})]
|
|
313
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
314
|
-
className: "divider"
|
|
315
|
-
}), context.loading ? /*#__PURE__*/_jsx(Skeleton, {
|
|
316
|
-
className: "skeleton",
|
|
317
|
-
sx: {
|
|
318
|
-
width: '100%',
|
|
319
|
-
height: '100%'
|
|
320
|
-
}
|
|
321
|
-
}) : /*#__PURE__*/_jsxs("div", {
|
|
322
|
-
className: "total-order space",
|
|
323
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
324
|
-
children: t('checkout.orderTotal')
|
|
325
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
326
|
-
children: getPrice(plan?.prices || [], providerName)
|
|
327
|
-
})]
|
|
328
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
329
|
-
className: "total-payment space",
|
|
330
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
331
|
-
children: t('checkout.paymentTotal')
|
|
332
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
333
|
-
children: calculateTotalPayment(plan?.prices || [])
|
|
334
|
-
})]
|
|
335
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
336
|
-
className: "payment-method space",
|
|
337
|
-
children: context.loading ? /*#__PURE__*/_jsx(Skeleton, {
|
|
338
|
-
className: "skeleton",
|
|
339
|
-
sx: {
|
|
340
|
-
width: '100%',
|
|
341
|
-
height: '100%'
|
|
342
|
-
}
|
|
343
|
-
}) : /*#__PURE__*/_jsxs("div", {
|
|
344
|
-
className: "body",
|
|
345
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
346
|
-
className: "payment-method__title",
|
|
347
|
-
children: t('checkout.paymentMethod.title')
|
|
348
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
349
|
-
className: "payment-method__list",
|
|
350
|
-
children: /*#__PURE__*/_jsx(Grid, {
|
|
351
|
-
container: true,
|
|
352
|
-
spacing: 3,
|
|
353
|
-
justifyContent: "flex-start",
|
|
354
|
-
children: paymentMethods.map(method => /*#__PURE__*/_jsx(Grid, {
|
|
355
|
-
item: true,
|
|
356
|
-
xs: 12,
|
|
357
|
-
sm: 12,
|
|
358
|
-
md: 3,
|
|
359
|
-
lg: 2,
|
|
360
|
-
xl: 2,
|
|
361
|
-
children: /*#__PURE__*/_jsx(Checkbox, {
|
|
362
|
-
label: method.currency.displayName[locale] || method.currency.displayName.en,
|
|
363
|
-
checked: state.paymentMethod === method._id,
|
|
364
|
-
onClick: () => switchPayment(method._id)
|
|
365
|
-
})
|
|
366
|
-
}, method._id))
|
|
367
|
-
})
|
|
368
|
-
})]
|
|
369
|
-
})
|
|
370
|
-
})]
|
|
371
|
-
}), !context.loading && /*#__PURE__*/_jsxs(Footer, {
|
|
372
|
-
className: "footer",
|
|
373
|
-
children: [enableBlockletAgreement && /*#__PURE__*/_jsx("div", {
|
|
374
|
-
className: "agreement",
|
|
375
|
-
children: /*#__PURE__*/_jsx(Checkbox, {
|
|
376
|
-
checked: state.agreed,
|
|
377
|
-
showHint: state.showAgreeHint,
|
|
378
|
-
onClick: () => toggleAgreement(),
|
|
379
|
-
label: /*#__PURE__*/_jsxs("div", {
|
|
380
|
-
style: {
|
|
381
|
-
display: 'flex',
|
|
382
|
-
alignItems: 'center'
|
|
383
|
-
},
|
|
384
|
-
children: [t('common.agreeTo'), /*#__PURE__*/_jsx("span", {
|
|
385
|
-
className: "agreement-label",
|
|
386
|
-
onClick: e => {
|
|
387
|
-
e.stopPropagation();
|
|
388
|
-
setState({
|
|
389
|
-
showAgreement: true
|
|
390
|
-
});
|
|
391
|
-
},
|
|
392
|
-
children: t('checkout.agreement', {
|
|
393
|
-
name: getBlockletDisplayName(blocklet)
|
|
394
|
-
})
|
|
395
|
-
})]
|
|
396
|
-
})
|
|
397
|
-
})
|
|
398
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
399
|
-
className: "actions",
|
|
400
|
-
children: [isMobile && /*#__PURE__*/_jsx(Button, {
|
|
401
|
-
className: "button-previous",
|
|
402
|
-
variant: "outlined",
|
|
403
|
-
onClick: () => navigate(-1),
|
|
404
|
-
children: t('common.previous')
|
|
405
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
406
|
-
loading: state.paying,
|
|
407
|
-
className: "button-pay",
|
|
408
|
-
disabled: state.paying || state.showPayment || !state.planId || !state.paymentMethod,
|
|
409
|
-
variant: "contained",
|
|
410
|
-
onClick: handlePay,
|
|
411
|
-
children: t('common.pay')
|
|
412
|
-
})]
|
|
413
|
-
})]
|
|
414
|
-
})]
|
|
415
|
-
}), state.showPayment && /*#__PURE__*/_jsx(Payment, {
|
|
416
|
-
baseURL: didPayPrefix,
|
|
417
|
-
method: paymentMethod,
|
|
418
|
-
userDid: session?.user?.did,
|
|
419
|
-
productId: state.planId,
|
|
420
|
-
useSocket: false,
|
|
421
|
-
onConnect: handleConnected,
|
|
422
|
-
onComplete: handlePaid,
|
|
423
|
-
onFailed: handlePayFailed,
|
|
424
|
-
onCancel: handleCancelPay,
|
|
425
|
-
metadata: {
|
|
426
|
-
sessionId: state.sessionId,
|
|
427
|
-
currentUserDid: session?.user?.did,
|
|
428
|
-
forceSwitch: !session?.user,
|
|
429
|
-
// HACK: 在 openPopup 阶段需要手动添加 sourceAppPid 字段
|
|
430
|
-
sourceAppPid: session?.user?.sourceAppPid
|
|
431
|
-
},
|
|
432
|
-
autoLogin: state.autoLogin
|
|
433
|
-
}), /*#__PURE__*/_jsx(Confirm, {
|
|
434
|
-
open: state.showPaidDialog.open,
|
|
435
|
-
disableEscapeKeyDown: true,
|
|
436
|
-
title: t('purchase.serverlessDialog.title'),
|
|
437
|
-
confirmButton: {
|
|
438
|
-
text: t('purchase.serverlessDialog.redirectToStoreButton')
|
|
439
|
-
},
|
|
440
|
-
PaperProps: {
|
|
441
|
-
style: {
|
|
442
|
-
maxWidth: 1200,
|
|
443
|
-
minWidth: isMobile ? undefined : 600
|
|
444
|
-
}
|
|
445
|
-
},
|
|
446
|
-
onCancel: () => setState({
|
|
447
|
-
showPaidDialog: {
|
|
448
|
-
open: false,
|
|
449
|
-
nftId: ''
|
|
450
|
-
}
|
|
451
|
-
}),
|
|
452
|
-
showCancelButton: false,
|
|
453
|
-
onConfirm: () => {
|
|
454
|
-
const url = new URL(BLOCKLET_STORE_URL);
|
|
455
|
-
url.searchParams.set('launcher_nft_id', state.showPaidDialog.nftId);
|
|
456
|
-
window.location = url.href;
|
|
457
|
-
},
|
|
458
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
459
|
-
children: t('purchase.serverlessDialog.purchaseServerlessSuccess')
|
|
460
|
-
})
|
|
461
|
-
}), /*#__PURE__*/_jsx(Dialog, {
|
|
462
|
-
open: state.showAgreement,
|
|
463
|
-
title: t('common.agreement'),
|
|
464
|
-
onClose: () => setState({
|
|
465
|
-
showAgreement: false
|
|
466
|
-
}),
|
|
467
|
-
children: /*#__PURE__*/_jsx(Agreement, {})
|
|
468
|
-
})]
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
CheckoutPage.propTypes = {
|
|
472
|
-
blocklet: PropTypes.object
|
|
473
|
-
};
|
|
474
|
-
CheckoutPage.defaultProps = {
|
|
475
|
-
blocklet: null
|
|
476
|
-
};
|
|
477
|
-
const Container = styled(Layout)`
|
|
478
|
-
.header {
|
|
479
|
-
font-weight: bolder;
|
|
480
|
-
font-size: 1.2em;
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
.divider {
|
|
484
|
-
margin-top: 20px;
|
|
485
|
-
border: 1.2px solid #f6f6f6;
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
.skeleton {
|
|
489
|
-
height: 64px;
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
.space {
|
|
493
|
-
margin-top: 18px;
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
.total-order {
|
|
497
|
-
display: flex;
|
|
498
|
-
justify-content: space-between;
|
|
499
|
-
align-items: center;
|
|
500
|
-
font-weight: bolder;
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
.total-payment {
|
|
504
|
-
display: flex;
|
|
505
|
-
justify-content: space-between;
|
|
506
|
-
align-items: center;
|
|
507
|
-
color: ${props => props.theme.palette.primary.main};
|
|
508
|
-
font-size: 22px;
|
|
509
|
-
font-weight: bolder;
|
|
510
|
-
}
|
|
511
|
-
|
|
512
|
-
.details {
|
|
513
|
-
display: flex;
|
|
514
|
-
justify-content: space-between;
|
|
515
|
-
align-items: center;
|
|
516
|
-
height: 40px;
|
|
517
|
-
|
|
518
|
-
.basic {
|
|
519
|
-
display: flex;
|
|
520
|
-
height: 40px;
|
|
521
|
-
|
|
522
|
-
.basic-info {
|
|
523
|
-
display: flex;
|
|
524
|
-
flex-direction: column;
|
|
525
|
-
justify-content: space-between;
|
|
526
|
-
margin-left: 8px;
|
|
527
|
-
|
|
528
|
-
.title {
|
|
529
|
-
font-weight: bolder;
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
.sub-title {
|
|
533
|
-
color: grey;
|
|
534
|
-
font-size: 0.8em;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
.period {
|
|
540
|
-
display: flex;
|
|
541
|
-
align-items: center;
|
|
542
|
-
|
|
543
|
-
.info-icon {
|
|
544
|
-
color: grey;
|
|
545
|
-
margin-left: 8px;
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
.payment-method {
|
|
551
|
-
background-color: #fbfbfb;
|
|
552
|
-
padding: 18px;
|
|
553
|
-
|
|
554
|
-
.payment-method__title {
|
|
555
|
-
color: #9397a1;
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
.payment-method__list {
|
|
559
|
-
margin-top: 8px;
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
.footer {
|
|
564
|
-
display: flex;
|
|
565
|
-
align-items: center;
|
|
566
|
-
justify-content: ${props => props.enableBlockletAgreement ? 'space-between' : 'flex-end'};
|
|
567
|
-
|
|
568
|
-
.agreement {
|
|
569
|
-
.agreement-label {
|
|
570
|
-
margin-left: 4px;
|
|
571
|
-
color: ${props => props.theme.palette.primary.main};
|
|
572
|
-
text-decoration: underline;
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
@media (min-width: ${props => props.mobileSize}) {
|
|
577
|
-
.actions {
|
|
578
|
-
.button-pay {
|
|
579
|
-
width: 200px;
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
@media (max-width: ${props => props.mobileSize}) {
|
|
585
|
-
flex-direction: column;
|
|
586
|
-
align-items: center;
|
|
587
|
-
|
|
588
|
-
.actions {
|
|
589
|
-
display: flex;
|
|
590
|
-
justify-content: space-between;
|
|
591
|
-
width: 100%;
|
|
592
|
-
margin-top: 20px;
|
|
593
|
-
|
|
594
|
-
& > button {
|
|
595
|
-
width: 48%;
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
`;
|
|
601
|
-
export default CheckoutPage;
|