@blocklet/launcher-workflow 1.5.67 → 1.5.70
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/confirm.js +25 -7
- package/lib/components/launch-result-message.js +37 -13
- package/lib/components/server-eula.js +45 -22
- package/lib/contexts/request.js +11 -0
- package/lib/index.js +6 -6
- package/lib/locales/en.js +2 -1
- package/lib/locales/zh.js +2 -1
- package/lib/prepare.js +84 -31
- package/lib/purchase.js +7 -1
- package/lib/util.js +8 -1
- package/package.json +5 -4
|
@@ -9,6 +9,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
|
|
12
|
+
var _lodash = _interopRequireDefault(require("lodash.get"));
|
|
13
|
+
|
|
12
14
|
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
13
15
|
|
|
14
16
|
var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
|
|
@@ -33,6 +35,17 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
33
35
|
|
|
34
36
|
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; }
|
|
35
37
|
|
|
38
|
+
const translations = {
|
|
39
|
+
en: {
|
|
40
|
+
confirm: 'Confirm',
|
|
41
|
+
cancel: 'Cancel'
|
|
42
|
+
},
|
|
43
|
+
zh: {
|
|
44
|
+
confirm: '同意',
|
|
45
|
+
cancel: '取消'
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
36
49
|
function ConfirmDialog(_ref) {
|
|
37
50
|
let {
|
|
38
51
|
title,
|
|
@@ -42,11 +55,14 @@ function ConfirmDialog(_ref) {
|
|
|
42
55
|
color,
|
|
43
56
|
params: initialParams,
|
|
44
57
|
onCancel,
|
|
45
|
-
onConfirm
|
|
58
|
+
onConfirm,
|
|
59
|
+
locale
|
|
46
60
|
} = _ref;
|
|
47
61
|
const {
|
|
48
|
-
|
|
49
|
-
} = (0, _react.useContext)(_locale.LocaleContext)
|
|
62
|
+
locale: innerLocale
|
|
63
|
+
} = (0, _react.useContext)(_locale.LocaleContext) || {
|
|
64
|
+
locale
|
|
65
|
+
};
|
|
50
66
|
const [params, setParams] = (0, _react.useState)(initialParams);
|
|
51
67
|
const theme = (0, _useTheme.default)();
|
|
52
68
|
const isBreakpointsDownSm = (0, _useMediaQuery.default)(theme.breakpoints.down('sm'));
|
|
@@ -68,13 +84,13 @@ function ConfirmDialog(_ref) {
|
|
|
68
84
|
onClick: () => onCallback(onCancel),
|
|
69
85
|
color: "default",
|
|
70
86
|
rounded: true
|
|
71
|
-
}, cancel ||
|
|
87
|
+
}, cancel || (0, _lodash.default)(translations, "".concat(innerLocale, ".cancel"))), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
72
88
|
onClick: () => onCallback(onConfirm),
|
|
73
89
|
color: color,
|
|
74
90
|
variant: "outlined",
|
|
75
91
|
autoFocus: true,
|
|
76
92
|
rounded: true
|
|
77
|
-
}, confirm ||
|
|
93
|
+
}, confirm || (0, _lodash.default)(translations, "".concat(innerLocale, ".confirm")))));
|
|
78
94
|
}
|
|
79
95
|
|
|
80
96
|
ConfirmDialog.propTypes = {
|
|
@@ -87,12 +103,14 @@ ConfirmDialog.propTypes = {
|
|
|
87
103
|
params: _propTypes.default.object,
|
|
88
104
|
// This object holds states managed in the dialog
|
|
89
105
|
onCancel: _propTypes.default.func,
|
|
90
|
-
onConfirm: _propTypes.default.func.isRequired
|
|
106
|
+
onConfirm: _propTypes.default.func.isRequired,
|
|
107
|
+
locale: _propTypes.default.oneOf(['en', 'zh'])
|
|
91
108
|
};
|
|
92
109
|
ConfirmDialog.defaultProps = {
|
|
93
110
|
onCancel: () => {},
|
|
94
111
|
cancel: '',
|
|
95
112
|
confirm: '',
|
|
96
113
|
color: 'danger',
|
|
97
|
-
params: {}
|
|
114
|
+
params: {},
|
|
115
|
+
locale: 'en'
|
|
98
116
|
};
|
|
@@ -15,6 +15,10 @@ var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
|
|
|
15
15
|
|
|
16
16
|
var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
|
|
17
17
|
|
|
18
|
+
var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
|
|
19
|
+
|
|
20
|
+
var _PriorityHigh = _interopRequireDefault(require("@material-ui/icons/PriorityHigh"));
|
|
21
|
+
|
|
18
22
|
const _excluded = ["variant", "title", "subTitle", "footer"];
|
|
19
23
|
|
|
20
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -32,25 +36,45 @@ function LaunchResultMessage(_ref) {
|
|
|
32
36
|
} = _ref,
|
|
33
37
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
34
38
|
|
|
35
|
-
|
|
39
|
+
let Icon;
|
|
40
|
+
|
|
41
|
+
switch (variant) {
|
|
42
|
+
case 'error':
|
|
43
|
+
Icon = _Close.default;
|
|
44
|
+
break;
|
|
45
|
+
|
|
46
|
+
case 'info':
|
|
47
|
+
Icon = _PriorityHigh.default;
|
|
48
|
+
break;
|
|
49
|
+
|
|
50
|
+
case 'loading':
|
|
51
|
+
Icon = _Spinner.default;
|
|
52
|
+
break;
|
|
53
|
+
|
|
54
|
+
default:
|
|
55
|
+
Icon = _Check.default;
|
|
56
|
+
}
|
|
57
|
+
|
|
36
58
|
return /*#__PURE__*/_react.default.createElement(Container, Object.assign({
|
|
37
59
|
variant: variant
|
|
38
|
-
}, props), /*#__PURE__*/_react.default.createElement("
|
|
39
|
-
className: "
|
|
40
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
41
|
-
className: "result-
|
|
42
|
-
},
|
|
43
|
-
className: "
|
|
44
|
-
},
|
|
45
|
-
className: "result-
|
|
46
|
-
},
|
|
60
|
+
}, props), /*#__PURE__*/_react.default.createElement("div", {
|
|
61
|
+
className: "result-body"
|
|
62
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
63
|
+
className: "result-icon color-".concat(variant)
|
|
64
|
+
}, /*#__PURE__*/_react.default.createElement(Icon, null)), /*#__PURE__*/_react.default.createElement("div", {
|
|
65
|
+
className: "result-title color-".concat(variant, " ").concat(title ? '' : 'ele-hide')
|
|
66
|
+
}, title), /*#__PURE__*/_react.default.createElement("div", {
|
|
67
|
+
className: "result-sub-title ".concat(subTitle ? '' : 'ele-hide')
|
|
68
|
+
}, subTitle), /*#__PURE__*/_react.default.createElement("div", {
|
|
69
|
+
className: "result-footer ".concat(footer ? '' : 'ele-hide')
|
|
70
|
+
}, footer)));
|
|
47
71
|
}
|
|
48
72
|
|
|
49
73
|
LaunchResultMessage.propTypes = {
|
|
50
|
-
variant: _propTypes.default.oneOf(['success', 'error']),
|
|
74
|
+
variant: _propTypes.default.oneOf(['success', 'error', 'info', 'loading']),
|
|
51
75
|
title: _propTypes.default.string,
|
|
52
76
|
subTitle: _propTypes.default.string,
|
|
53
|
-
footer: _propTypes.default.
|
|
77
|
+
footer: _propTypes.default.any
|
|
54
78
|
};
|
|
55
79
|
LaunchResultMessage.defaultProps = {
|
|
56
80
|
variant: 'success',
|
|
@@ -62,4 +86,4 @@ LaunchResultMessage.defaultProps = {
|
|
|
62
86
|
const Container = _styledComponents.default.div.withConfig({
|
|
63
87
|
displayName: "launch-result-message__Container",
|
|
64
88
|
componentId: "sc-17nd2le-0"
|
|
65
|
-
})(["display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;height:100%;.icon{display:inline-flex;justify-content:center;align-items:center;width:48px;height:48px;border-radius:100%;
|
|
89
|
+
})(["display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;height:100%;.result-body{max-width:500px;text-align:center;margin-top:-64px;}.result-icon{display:inline-flex;justify-content:center;align-items:center;margin-bottom:24px;width:48px;height:48px;border-radius:100%;color:", ";transition:all ease 0.3s;&.color-success{background-color:", ";}&.color-error{background-color:", ";}&.color-info{background-color:", ";}}.result-title{height:34px;font-size:24px;margin-bottom:8px;font-weight:bolder;transition:all ease 0.3s;&.ele-hide{height:0;opacity:0;margin-bottom:0;}&.color-success{color:", ";}&.color-error{color:", ";}&.color-info{color:", ";}&.ele-hide{line-height:0;opacity:0;}}.result-sub-title{margin:0 auto;max-width:90%;color:", ";font-size:14px;line-height:1.21em;transition:all ease 0.3s;&.ele-hide{line-height:0;opacity:0;}}.result-footer{margin-top:38px;height:70px;overflow:hidden;transition:all ease 0.3s;&.ele-hide{margin-top:0;height:0;opacity:0;}}"], props => props.theme.palette.common.white, props => props.theme.palette.success.main, props => props.theme.palette.error.main, props => props.theme.palette.primary.main, props => props.theme.palette.success.main, props => props.theme.palette.error.main, props => props.theme.palette.primary.main, props => props.theme.palette.grey[700]);
|
|
@@ -11,8 +11,6 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
11
11
|
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
|
|
14
|
-
var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
|
|
15
|
-
|
|
16
14
|
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
17
15
|
|
|
18
16
|
var _CheckCircleRounded = _interopRequireDefault(require("@material-ui/icons/CheckCircleRounded"));
|
|
@@ -21,11 +19,9 @@ var _CheckCircleOutlineRounded = _interopRequireDefault(require("@material-ui/ic
|
|
|
21
19
|
|
|
22
20
|
var _FormLabel = _interopRequireDefault(require("@material-ui/core/FormLabel"));
|
|
23
21
|
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
var _server = _interopRequireDefault(require("@arcblock/license/lib/server"));
|
|
22
|
+
var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
|
|
27
23
|
|
|
28
|
-
var
|
|
24
|
+
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
29
25
|
|
|
30
26
|
var _confirm = _interopRequireDefault(require("./confirm"));
|
|
31
27
|
|
|
@@ -39,15 +35,19 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
39
35
|
function ServerEula(_ref) {
|
|
40
36
|
let {
|
|
41
37
|
onContinue,
|
|
42
|
-
nextDisabled
|
|
38
|
+
nextDisabled,
|
|
39
|
+
launching,
|
|
40
|
+
checkKey,
|
|
41
|
+
texts,
|
|
42
|
+
description
|
|
43
43
|
} = _ref;
|
|
44
|
-
const [agreed, setAgreed] = (0,
|
|
44
|
+
const [agreed, setAgreed] = (0, _react.useState)(localStorage.getItem(checkKey) === 'true');
|
|
45
45
|
const [open, setOpen] = (0, _react.useState)(false);
|
|
46
|
-
const {
|
|
47
|
-
t
|
|
48
|
-
} = (0, _react.useContext)(_locale.LocaleContext);
|
|
49
46
|
|
|
50
|
-
const handleChecked = () => setAgreed(x =>
|
|
47
|
+
const handleChecked = () => setAgreed(x => {
|
|
48
|
+
localStorage.setItem(checkKey, !x);
|
|
49
|
+
return !x;
|
|
50
|
+
});
|
|
51
51
|
|
|
52
52
|
const handleOpen = () => setOpen(x => !x);
|
|
53
53
|
|
|
@@ -55,6 +55,7 @@ function ServerEula(_ref) {
|
|
|
55
55
|
|
|
56
56
|
const handleConfirm = () => {
|
|
57
57
|
setAgreed(true);
|
|
58
|
+
localStorage.setItem(checkKey, true);
|
|
58
59
|
setOpen(false);
|
|
59
60
|
};
|
|
60
61
|
|
|
@@ -69,32 +70,54 @@ function ServerEula(_ref) {
|
|
|
69
70
|
}), /*#__PURE__*/_react.default.createElement(_FormLabel.default, {
|
|
70
71
|
className: "eula-trigger",
|
|
71
72
|
onClick: handleOpen
|
|
72
|
-
},
|
|
73
|
+
}, texts.listenName)), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
73
74
|
disabled: !agreed || nextDisabled,
|
|
74
75
|
color: "primary",
|
|
75
76
|
variant: "contained",
|
|
76
77
|
className: "next-button",
|
|
77
78
|
onClick: onContinue
|
|
78
|
-
},
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
}, launching ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Spinner.default, {
|
|
80
|
+
size: 14
|
|
81
|
+
}), texts.launchingText) : texts.buttonNext)), open && (texts.confirmOK ? /*#__PURE__*/_react.default.createElement(_confirm.default, {
|
|
82
|
+
title: texts.confirmTitle,
|
|
83
|
+
description: description,
|
|
84
|
+
color: "primary",
|
|
85
|
+
confirm: texts.confirmOK,
|
|
86
|
+
cancel: texts.confirmCancel,
|
|
87
|
+
onCancel: handleCancel,
|
|
88
|
+
onConfirm: handleConfirm
|
|
89
|
+
}) : /*#__PURE__*/_react.default.createElement(_confirm.default, {
|
|
90
|
+
title: texts.confirmTitle,
|
|
91
|
+
description: description,
|
|
83
92
|
color: "primary",
|
|
84
93
|
onCancel: handleCancel,
|
|
85
94
|
onConfirm: handleConfirm
|
|
86
|
-
}));
|
|
95
|
+
})));
|
|
87
96
|
}
|
|
88
97
|
|
|
89
98
|
ServerEula.propTypes = {
|
|
90
99
|
onContinue: _propTypes.default.func.isRequired,
|
|
91
|
-
nextDisabled: _propTypes.default.bool
|
|
100
|
+
nextDisabled: _propTypes.default.bool,
|
|
101
|
+
launching: _propTypes.default.bool,
|
|
102
|
+
checkKey: _propTypes.default.string.isRequired,
|
|
103
|
+
description: _propTypes.default.any,
|
|
104
|
+
texts: _propTypes.default.object
|
|
92
105
|
};
|
|
93
106
|
ServerEula.defaultProps = {
|
|
94
|
-
nextDisabled: false
|
|
107
|
+
nextDisabled: false,
|
|
108
|
+
launching: false,
|
|
109
|
+
description: '',
|
|
110
|
+
texts: {
|
|
111
|
+
listenName: '',
|
|
112
|
+
launchingText: '',
|
|
113
|
+
buttonNext: '',
|
|
114
|
+
confirmTitle: '',
|
|
115
|
+
confirmOK: '',
|
|
116
|
+
confirmCancel: ''
|
|
117
|
+
}
|
|
95
118
|
};
|
|
96
119
|
|
|
97
120
|
const Div = _styledComponents.default.div.withConfig({
|
|
98
121
|
displayName: "server-eula__Div",
|
|
99
122
|
componentId: "sc-16uy00s-0"
|
|
100
|
-
})(["
|
|
123
|
+
})(["margin:0 auto;display:flex;justify-content:space-between;align-items:center;@media (max-width:", "px){flex-direction:column;}.eula-checkbox{display:flex;flex:1;align-items:center;.eula-trigger{cursor:pointer;", "{padding-right:24px;}font-size:14px;white-space:nowrap;&:hover{color:", ";}}}.next-button{width:200px;}"], props => props.theme.breakpoints.values.sm, props => props.theme.breakpoints.up('md'), props => props.theme.palette.primary.main);
|
package/lib/contexts/request.js
CHANGED
|
@@ -18,6 +18,8 @@ var _urlJoin = _interopRequireDefault(require("url-join"));
|
|
|
18
18
|
|
|
19
19
|
var _session = require("./session");
|
|
20
20
|
|
|
21
|
+
var _locale = require("./locale");
|
|
22
|
+
|
|
21
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
24
|
|
|
23
25
|
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); }
|
|
@@ -44,6 +46,9 @@ function RequestProvider(_ref) {
|
|
|
44
46
|
const {
|
|
45
47
|
session
|
|
46
48
|
} = (0, _session.useSessionContext)();
|
|
49
|
+
const {
|
|
50
|
+
locale
|
|
51
|
+
} = (0, _locale.useLocaleContext)();
|
|
47
52
|
|
|
48
53
|
const privateRequest = _axios.default.create({
|
|
49
54
|
baseURL
|
|
@@ -51,6 +56,12 @@ function RequestProvider(_ref) {
|
|
|
51
56
|
|
|
52
57
|
privateRequest.interceptors.request.use(config => {
|
|
53
58
|
config.url = (0, _urlJoin.default)('/api', config.url);
|
|
59
|
+
|
|
60
|
+
if (!config.params) {
|
|
61
|
+
config.params = {};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
config.params.locale = locale;
|
|
54
65
|
return config;
|
|
55
66
|
});
|
|
56
67
|
privateRequest.interceptors.response.use(response => response, err => {
|
package/lib/index.js
CHANGED
|
@@ -77,11 +77,11 @@ function Stripe(_ref2) {
|
|
|
77
77
|
} = _ref2,
|
|
78
78
|
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
79
79
|
|
|
80
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
81
|
-
baseURL: baseURL
|
|
82
|
-
}, /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
|
|
80
|
+
return /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
|
|
83
81
|
translations: _locales.translations,
|
|
84
82
|
locale: locale
|
|
83
|
+
}, /*#__PURE__*/_react.default.createElement(_request.RequestProvider, {
|
|
84
|
+
baseURL: baseURL
|
|
85
85
|
}, /*#__PURE__*/_react.default.createElement(_checkout.default, rest)));
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -101,11 +101,11 @@ function Launcher(_ref3) {
|
|
|
101
101
|
locale,
|
|
102
102
|
baseURL
|
|
103
103
|
} = _ref3;
|
|
104
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
105
|
-
baseURL: baseURL
|
|
106
|
-
}, /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
|
|
104
|
+
return /*#__PURE__*/_react.default.createElement(_locale.LocaleProvider, {
|
|
107
105
|
translations: _locales.translations,
|
|
108
106
|
locale: locale
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(_request.RequestProvider, {
|
|
108
|
+
baseURL: baseURL
|
|
109
109
|
}, /*#__PURE__*/_react.default.createElement(LaunchContent, {
|
|
110
110
|
Route: Route,
|
|
111
111
|
routerPrefix: routerPrefix,
|
package/lib/locales/en.js
CHANGED
package/lib/locales/zh.js
CHANGED
package/lib/prepare.js
CHANGED
|
@@ -11,6 +11,8 @@ var _reactRouterDom = require("react-router-dom");
|
|
|
11
11
|
|
|
12
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
13
|
|
|
14
|
+
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
15
|
+
|
|
14
16
|
var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
|
|
15
17
|
|
|
16
18
|
var _utils = require("@arcblock/did-connect/lib/utils");
|
|
@@ -23,6 +25,8 @@ var _FormHelperText = _interopRequireDefault(require("@material-ui/core/FormHelp
|
|
|
23
25
|
|
|
24
26
|
var _launcherConstant = require("@blocklet/launcher-constant");
|
|
25
27
|
|
|
28
|
+
var _server = _interopRequireDefault(require("@arcblock/license/lib/server"));
|
|
29
|
+
|
|
26
30
|
var _pageHeader = _interopRequireDefault(require("./components/page-header"));
|
|
27
31
|
|
|
28
32
|
var _serverEula = _interopRequireDefault(require("./components/server-eula"));
|
|
@@ -33,6 +37,8 @@ var _locale = require("./contexts/locale");
|
|
|
33
37
|
|
|
34
38
|
var _router = _interopRequireWildcard(require("./contexts/router"));
|
|
35
39
|
|
|
40
|
+
var _util = require("./util");
|
|
41
|
+
|
|
36
42
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
43
|
|
|
38
44
|
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); }
|
|
@@ -80,8 +86,6 @@ BlockletServerIcon.defaultProps = {
|
|
|
80
86
|
fill: "none",
|
|
81
87
|
xmlns: "http://www.w3.org/2000/svg"
|
|
82
88
|
};
|
|
83
|
-
const MAX_NAME_LENGTH = 30;
|
|
84
|
-
const MAX_DESC_LENGTH = 50;
|
|
85
89
|
|
|
86
90
|
function PreparePage() {
|
|
87
91
|
const {
|
|
@@ -89,18 +93,21 @@ function PreparePage() {
|
|
|
89
93
|
} = (0, _react.useContext)(_locale.LocaleContext);
|
|
90
94
|
const [name, setName] = (0, _react.useState)('');
|
|
91
95
|
const [description, setDescription] = (0, _react.useState)('');
|
|
92
|
-
const [
|
|
96
|
+
const [formError, setFormError] = (0, _react.useState)({
|
|
93
97
|
name: '',
|
|
94
98
|
description: ''
|
|
95
99
|
});
|
|
96
100
|
const routerPrefix = (0, _router.usePrefix)();
|
|
101
|
+
const [launching, setLaunching] = (0, _react.useState)(false);
|
|
102
|
+
const [error, setError] = (0, _react.useState)('');
|
|
97
103
|
const [showLaunchInstanceDialog, setShowLaunchInstanceDialog] = (0, _react.useState)(false);
|
|
98
104
|
const {
|
|
99
105
|
nftId
|
|
100
106
|
} = (0, _reactRouterDom.useParams)();
|
|
101
107
|
const history = (0, _reactRouterDom.useHistory)();
|
|
102
108
|
const {
|
|
103
|
-
create: createRequest
|
|
109
|
+
create: createRequest,
|
|
110
|
+
api
|
|
104
111
|
} = (0, _request.default)();
|
|
105
112
|
|
|
106
113
|
const handleInput = id => e => {
|
|
@@ -115,31 +122,34 @@ function PreparePage() {
|
|
|
115
122
|
validate();
|
|
116
123
|
};
|
|
117
124
|
|
|
125
|
+
const isRedeem = nftId === _launcherConstant.REDEEM_NFT_ID;
|
|
126
|
+
const headerScope = isRedeem ? 'redeem' : 'prepare';
|
|
127
|
+
|
|
118
128
|
const validate = () => {
|
|
119
129
|
let isError = false;
|
|
120
130
|
|
|
121
|
-
if (name.length >
|
|
131
|
+
if (name.length > _launcherConstant.INSTANCE_MAX_NAME_LENGTH) {
|
|
122
132
|
isError = true;
|
|
123
|
-
|
|
124
|
-
name: t('launchPrepare.
|
|
125
|
-
length:
|
|
133
|
+
setFormError(value => _objectSpread(_objectSpread({}, value), {}, {
|
|
134
|
+
name: t('launchPrepare.formError.nameExceed', {
|
|
135
|
+
length: _launcherConstant.INSTANCE_MAX_NAME_LENGTH
|
|
126
136
|
})
|
|
127
137
|
}));
|
|
128
138
|
} else {
|
|
129
|
-
|
|
139
|
+
setFormError(value => _objectSpread(_objectSpread({}, value), {}, {
|
|
130
140
|
name: ''
|
|
131
141
|
}));
|
|
132
142
|
}
|
|
133
143
|
|
|
134
|
-
if (description.length >
|
|
144
|
+
if (description.length > _launcherConstant.INSTANCE_MAX_DESC_LENGTH) {
|
|
135
145
|
isError = true;
|
|
136
|
-
|
|
137
|
-
description: t('launchPrepare.
|
|
138
|
-
length:
|
|
146
|
+
setFormError(value => _objectSpread(_objectSpread({}, value), {}, {
|
|
147
|
+
description: t('launchPrepare.formError.descriptionExceed', {
|
|
148
|
+
length: _launcherConstant.INSTANCE_MAX_DESC_LENGTH
|
|
139
149
|
})
|
|
140
150
|
}));
|
|
141
151
|
} else {
|
|
142
|
-
|
|
152
|
+
setFormError(value => _objectSpread(_objectSpread({}, value), {}, {
|
|
143
153
|
description: ''
|
|
144
154
|
}));
|
|
145
155
|
}
|
|
@@ -147,12 +157,40 @@ function PreparePage() {
|
|
|
147
157
|
return isError;
|
|
148
158
|
};
|
|
149
159
|
|
|
150
|
-
const handleLaunch = () => {
|
|
160
|
+
const handleLaunch = async () => {
|
|
161
|
+
setLaunching(true);
|
|
162
|
+
|
|
151
163
|
if (validate()) {
|
|
152
164
|
return;
|
|
153
165
|
}
|
|
154
166
|
|
|
155
|
-
|
|
167
|
+
if (isRedeem) {
|
|
168
|
+
setShowLaunchInstanceDialog(true);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
const {
|
|
174
|
+
status
|
|
175
|
+
} = await api.post('/instances/launch', {
|
|
176
|
+
nftId,
|
|
177
|
+
name,
|
|
178
|
+
description
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
if (status !== 202) {
|
|
182
|
+
setError(t('launch.error.launchFailed'));
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
handleAuthSuccess({
|
|
187
|
+
nftId
|
|
188
|
+
});
|
|
189
|
+
} catch (err) {
|
|
190
|
+
setError((0, _util.getAPIResponseError)(err));
|
|
191
|
+
} finally {
|
|
192
|
+
setLaunching(false);
|
|
193
|
+
}
|
|
156
194
|
}; // eslint-disable-next-line no-shadow
|
|
157
195
|
|
|
158
196
|
|
|
@@ -163,11 +201,11 @@ function PreparePage() {
|
|
|
163
201
|
history.push((0, _router.default)(routerPrefix, "/in-progress/".concat(nftId).concat(window.location.search)));
|
|
164
202
|
};
|
|
165
203
|
|
|
166
|
-
const handleCloseAuthDialog = () =>
|
|
204
|
+
const handleCloseAuthDialog = () => {
|
|
205
|
+
setLaunching(false);
|
|
206
|
+
setShowLaunchInstanceDialog(false);
|
|
207
|
+
};
|
|
167
208
|
|
|
168
|
-
const isRedeem = nftId === _launcherConstant.REDEEM_NFT_ID;
|
|
169
|
-
const headerScope = isRedeem ? 'redeem' : 'prepare';
|
|
170
|
-
const buttonScope = isRedeem ? 'redeem' : 'launch';
|
|
171
209
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_pageHeader.default, {
|
|
172
210
|
title: t("".concat(headerScope, ".title")),
|
|
173
211
|
subTitle: t("".concat(headerScope, ".subTitle"))
|
|
@@ -179,7 +217,7 @@ function PreparePage() {
|
|
|
179
217
|
className: "inputs"
|
|
180
218
|
}, /*#__PURE__*/_react.default.createElement(_FormControl.default, {
|
|
181
219
|
className: "input-item",
|
|
182
|
-
|
|
220
|
+
formError: !!formError.name
|
|
183
221
|
}, /*#__PURE__*/_react.default.createElement(_TextField.default, {
|
|
184
222
|
id: "name",
|
|
185
223
|
variant: "outlined",
|
|
@@ -188,24 +226,35 @@ function PreparePage() {
|
|
|
188
226
|
value: name,
|
|
189
227
|
labelWidth: 0,
|
|
190
228
|
autoFocus: true
|
|
191
|
-
}),
|
|
229
|
+
}), formError.name && /*#__PURE__*/_react.default.createElement(_FormHelperText.default, null, formError.name)), /*#__PURE__*/_react.default.createElement(_FormControl.default, {
|
|
192
230
|
className: "input-item",
|
|
193
|
-
|
|
231
|
+
formError: !!formError.description
|
|
194
232
|
}, /*#__PURE__*/_react.default.createElement(_TextField.default, {
|
|
195
233
|
id: "description",
|
|
196
234
|
variant: "outlined",
|
|
197
235
|
label: t('common.description'),
|
|
198
|
-
|
|
236
|
+
formError: !!formError.desc,
|
|
199
237
|
onChange: handleInput('description'),
|
|
200
238
|
multiline: true,
|
|
201
239
|
maxRows: 5,
|
|
202
240
|
value: description,
|
|
203
241
|
labelWidth: 0
|
|
204
|
-
}),
|
|
242
|
+
}), formError.description && /*#__PURE__*/_react.default.createElement(_FormHelperText.default, null, formError.description)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
205
243
|
className: "botton-container"
|
|
206
244
|
}, /*#__PURE__*/_react.default.createElement(_serverEula.default, {
|
|
207
245
|
onContinue: handleLaunch,
|
|
208
|
-
nextDisabled: !name.trim() || !description.trim()
|
|
246
|
+
nextDisabled: !name.trim() || !description.trim() || launching,
|
|
247
|
+
launching: launching,
|
|
248
|
+
checkKey: "server-eula-checked",
|
|
249
|
+
description: /*#__PURE__*/_react.default.createElement(_server.default, {
|
|
250
|
+
className: "eula-content"
|
|
251
|
+
}),
|
|
252
|
+
texts: {
|
|
253
|
+
listenName: t('license.footer'),
|
|
254
|
+
launchingText: t('common.launching'),
|
|
255
|
+
buttonNext: t('common.next'),
|
|
256
|
+
confirmTitle: t('license.title')
|
|
257
|
+
}
|
|
209
258
|
}))), /*#__PURE__*/_react.default.createElement(_Connect.default, {
|
|
210
259
|
open: showLaunchInstanceDialog,
|
|
211
260
|
popup: true,
|
|
@@ -223,15 +272,19 @@ function PreparePage() {
|
|
|
223
272
|
disableClose: true,
|
|
224
273
|
showDownload: false,
|
|
225
274
|
messages: {
|
|
226
|
-
title: t(
|
|
227
|
-
scan: t(
|
|
228
|
-
confirm: t(
|
|
229
|
-
success: t(
|
|
275
|
+
title: t('redeem.dialog.title'),
|
|
276
|
+
scan: t('redeem.dialog.scan'),
|
|
277
|
+
confirm: t('redeem.dialog.confirm'),
|
|
278
|
+
success: t('redeem.dialog.success')
|
|
230
279
|
}
|
|
280
|
+
}), error && /*#__PURE__*/_react.default.createElement(_Toast.default, {
|
|
281
|
+
message: error,
|
|
282
|
+
variant: "error",
|
|
283
|
+
onClose: () => setError('')
|
|
231
284
|
}));
|
|
232
285
|
}
|
|
233
286
|
|
|
234
287
|
const Container = _styledComponents.default.div.withConfig({
|
|
235
288
|
displayName: "prepare__Container",
|
|
236
289
|
componentId: "sc-1ddofcz-0"
|
|
237
|
-
})(["display:flex;flex-direction:column;width:100%;height:100%;.page-logo{display:flex;justify-content:center;margin-top:62px;", "{margin-top:48px;}}.inputs{display:flex;align-items:center;flex-direction:column;text-align:center;}.input-item{margin-top:24px;width:90%;max-width:450px;font-size:14px;input,textarea{font-size:14px;}}.botton-container{margin
|
|
290
|
+
})(["display:flex;flex-direction:column;width:100%;height:100%;.page-logo{display:flex;justify-content:center;margin-top:62px;", "{margin-top:48px;}}.inputs{display:flex;align-items:center;flex-direction:column;text-align:center;}.input-item{margin-top:24px;width:90%;max-width:450px;font-size:14px;input,textarea{font-size:14px;}}.botton-container{width:100%;margin:24px auto;max-width:450px;text-align:center;}"], props => props.theme.breakpoints.down('sm'));
|
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 _jsCookie = _interopRequireDefault(require("js-cookie"));
|
|
19
|
+
|
|
18
20
|
var _Coins = require("@styled-icons/remix-fill/Coins");
|
|
19
21
|
|
|
20
22
|
var _util = require("@ocap/util");
|
|
@@ -160,8 +162,12 @@ function PurchasePage() {
|
|
|
160
162
|
|
|
161
163
|
const handlePaid = _ref => {
|
|
162
164
|
let {
|
|
163
|
-
nftId
|
|
165
|
+
nftId,
|
|
166
|
+
launchToken
|
|
164
167
|
} = _ref;
|
|
168
|
+
|
|
169
|
+
_jsCookie.default.set('launch-token', launchToken);
|
|
170
|
+
|
|
165
171
|
const url = "/prepare/".concat(nftId).concat(window.location.search);
|
|
166
172
|
history.push((0, _router.default)(routerPrefix, url));
|
|
167
173
|
};
|
package/lib/util.js
CHANGED
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.getAPIResponseError = void 0;
|
|
6
7
|
exports.getBlockletMetaUrl = getBlockletMetaUrl;
|
|
7
8
|
exports.loadURL = exports.getLaunchBlockletUrl = void 0;
|
|
8
9
|
|
|
9
10
|
var _urlJoin = _interopRequireDefault(require("url-join"));
|
|
10
11
|
|
|
12
|
+
var _lodash = _interopRequireDefault(require("lodash.get"));
|
|
13
|
+
|
|
11
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
15
|
|
|
13
16
|
function getBlockletMetaUrl(registry, did) {
|
|
@@ -19,7 +22,7 @@ const getLaunchBlockletUrl = (serverUrl, blockletMetaUrl, locale) => {
|
|
|
19
22
|
return serverUrl;
|
|
20
23
|
}
|
|
21
24
|
|
|
22
|
-
let result = (0, _urlJoin.default)(serverUrl, "/launch-blocklet?blocklet_meta_url=".concat(encodeURIComponent(blockletMetaUrl)));
|
|
25
|
+
let result = (0, _urlJoin.default)(serverUrl, "/launch-blocklet/install?blocklet_meta_url=".concat(encodeURIComponent(blockletMetaUrl), "&from=launcher"));
|
|
23
26
|
|
|
24
27
|
if (locale) {
|
|
25
28
|
result += "&locale=".concat(locale);
|
|
@@ -30,6 +33,10 @@ const getLaunchBlockletUrl = (serverUrl, blockletMetaUrl, locale) => {
|
|
|
30
33
|
|
|
31
34
|
exports.getLaunchBlockletUrl = getLaunchBlockletUrl;
|
|
32
35
|
|
|
36
|
+
const getAPIResponseError = error => (0, _lodash.default)(error, 'response.data.error', '') || error.message;
|
|
37
|
+
|
|
38
|
+
exports.getAPIResponseError = getAPIResponseError;
|
|
39
|
+
|
|
33
40
|
const loadURL = url => new Promise(resolve => {
|
|
34
41
|
let timer;
|
|
35
42
|
const iframe = document.createElement('iframe');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocklet/launcher-workflow",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.70",
|
|
4
4
|
"description": "Purchase components for Launcher UI",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"@arcblock/icons": "^1.16.49",
|
|
42
42
|
"@arcblock/license": "^1.16.49",
|
|
43
43
|
"@arcblock/ux": "^1.16.49",
|
|
44
|
-
"@blocklet/launcher-constant": "1.5.
|
|
45
|
-
"@blocklet/launcher-layout": "1.5.
|
|
44
|
+
"@blocklet/launcher-constant": "1.5.70",
|
|
45
|
+
"@blocklet/launcher-layout": "1.5.70",
|
|
46
46
|
"@material-ui/core": "^4.12.3",
|
|
47
47
|
"@material-ui/icons": "^4.11.2",
|
|
48
48
|
"@material-ui/lab": "^4.0.0-alpha.60",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"@styled-icons/remix-fill": "^10.18.0",
|
|
53
53
|
"axios": "^0.26.0",
|
|
54
54
|
"flat": "^5.0.2",
|
|
55
|
+
"js-cookie": "^3.0.1",
|
|
55
56
|
"lodash.get": "^4.4.2",
|
|
56
57
|
"lodash.throttle": "^4.1.1",
|
|
57
58
|
"prop-types": "^15.8.1",
|
|
@@ -68,5 +69,5 @@
|
|
|
68
69
|
"babel-plugin-inline-react-svg": "^2.0.1",
|
|
69
70
|
"babel-plugin-styled-components": "^1.10.7"
|
|
70
71
|
},
|
|
71
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "6cd2aa6e4d3559047c68e2208b7ec12f31236930"
|
|
72
73
|
}
|