@blocklet/launcher-workflow 1.5.65 → 1.5.66

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.
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ConfirmDialog;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
13
+
14
+ var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
15
+
16
+ var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
17
+
18
+ var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
19
+
20
+ var _DialogContentText = _interopRequireDefault(require("@material-ui/core/DialogContentText"));
21
+
22
+ var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle"));
23
+
24
+ var _useTheme = _interopRequireDefault(require("@material-ui/core/styles/useTheme"));
25
+
26
+ var _useMediaQuery = _interopRequireDefault(require("@material-ui/core/useMediaQuery"));
27
+
28
+ var _locale = require("../contexts/locale");
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ 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); }
33
+
34
+ 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
+
36
+ function ConfirmDialog(_ref) {
37
+ let {
38
+ title,
39
+ description,
40
+ cancel,
41
+ confirm,
42
+ color,
43
+ params: initialParams,
44
+ onCancel,
45
+ onConfirm
46
+ } = _ref;
47
+ const {
48
+ t
49
+ } = (0, _react.useContext)(_locale.LocaleContext);
50
+ const [params, setParams] = (0, _react.useState)(initialParams);
51
+ const theme = (0, _useTheme.default)();
52
+ const isBreakpointsDownSm = (0, _useMediaQuery.default)(theme.breakpoints.down('sm'));
53
+
54
+ const onCallback = cb => {
55
+ if (typeof cb === 'function') {
56
+ cb(params);
57
+ }
58
+ };
59
+
60
+ return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
61
+ open: true,
62
+ fullScreen: isBreakpointsDownSm
63
+ }, /*#__PURE__*/_react.default.createElement(_DialogTitle.default, null, typeof title === 'function' ? title() : title), /*#__PURE__*/_react.default.createElement(_DialogContent.default, null, /*#__PURE__*/_react.default.createElement(_DialogContentText.default, null, typeof description === 'function' ? description(params, setParams) : description)), /*#__PURE__*/_react.default.createElement(_DialogActions.default, {
64
+ style: {
65
+ padding: '8px 24px 24px'
66
+ }
67
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
68
+ onClick: () => onCallback(onCancel),
69
+ color: "default",
70
+ rounded: true
71
+ }, cancel || t('common.cancel')), /*#__PURE__*/_react.default.createElement(_Button.default, {
72
+ onClick: () => onCallback(onConfirm),
73
+ color: color,
74
+ variant: "outlined",
75
+ autoFocus: true,
76
+ rounded: true
77
+ }, confirm || t('common.confirm'))));
78
+ }
79
+
80
+ ConfirmDialog.propTypes = {
81
+ title: _propTypes.default.any.isRequired,
82
+ description: _propTypes.default.any.isRequired,
83
+ // can be a function that renders different content based on params
84
+ cancel: _propTypes.default.string,
85
+ color: _propTypes.default.string,
86
+ confirm: _propTypes.default.string,
87
+ params: _propTypes.default.object,
88
+ // This object holds states managed in the dialog
89
+ onCancel: _propTypes.default.func,
90
+ onConfirm: _propTypes.default.func.isRequired
91
+ };
92
+ ConfirmDialog.defaultProps = {
93
+ onCancel: () => {},
94
+ cancel: '',
95
+ confirm: '',
96
+ color: 'danger',
97
+ params: {}
98
+ };
@@ -9,12 +9,12 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _reactRouterDom = require("react-router-dom");
11
11
 
12
- var _reactUse = require("react-use");
13
-
14
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
13
 
16
14
  var _lodash = _interopRequireDefault(require("lodash.get"));
17
15
 
16
+ var _useInterval = _interopRequireDefault(require("react-use/lib/useInterval"));
17
+
18
18
  var _lodash2 = _interopRequireDefault(require("lodash.throttle"));
19
19
 
20
20
  var _styledComponents = _interopRequireDefault(require("styled-components"));
@@ -121,7 +121,7 @@ function OperationPage(_ref) {
121
121
  };
122
122
 
123
123
  const poll = (0, _lodash2.default)(getInstanceStatus, 5000);
124
- (0, _reactUse.useInterval)(poll, launchState.status === STATUS.launching && nftId ? 5000 : null);
124
+ (0, _useInterval.default)(poll, launchState.status === STATUS.launching && nftId ? 5000 : null);
125
125
  (0, _react.useEffect)(() => {
126
126
  if (!nftId) {
127
127
  return;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ServerEula;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
15
+
16
+ var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
17
+
18
+ var _CheckCircleRounded = _interopRequireDefault(require("@material-ui/icons/CheckCircleRounded"));
19
+
20
+ var _CheckCircleOutlineRounded = _interopRequireDefault(require("@material-ui/icons/CheckCircleOutlineRounded"));
21
+
22
+ var _FormLabel = _interopRequireDefault(require("@material-ui/core/FormLabel"));
23
+
24
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
25
+
26
+ var _server = _interopRequireDefault(require("@arcblock/license/lib/server"));
27
+
28
+ var _locale = require("../contexts/locale");
29
+
30
+ var _confirm = _interopRequireDefault(require("./confirm"));
31
+
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+
34
+ 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); }
35
+
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; }
37
+
38
+ /* eslint-disable react/jsx-wrap-multilines */
39
+ function ServerEula(_ref) {
40
+ let {
41
+ onContinue,
42
+ nextDisabled
43
+ } = _ref;
44
+ const [agreed, setAgreed] = (0, _useLocalStorage.default)('server-eula-checked', false);
45
+ const [open, setOpen] = (0, _react.useState)(false);
46
+ const {
47
+ t
48
+ } = (0, _react.useContext)(_locale.LocaleContext);
49
+
50
+ const handleChecked = () => setAgreed(x => !x);
51
+
52
+ const handleOpen = () => setOpen(x => !x);
53
+
54
+ const handleCancel = () => setOpen(false);
55
+
56
+ const handleConfirm = () => {
57
+ setAgreed(true);
58
+ setOpen(false);
59
+ };
60
+
61
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Div, null, /*#__PURE__*/_react.default.createElement("div", {
62
+ className: "eula-checkbox"
63
+ }, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
64
+ checked: agreed,
65
+ onChange: handleChecked,
66
+ color: "primary",
67
+ checkedIcon: /*#__PURE__*/_react.default.createElement(_CheckCircleRounded.default, null),
68
+ icon: /*#__PURE__*/_react.default.createElement(_CheckCircleOutlineRounded.default, null)
69
+ }), /*#__PURE__*/_react.default.createElement(_FormLabel.default, {
70
+ className: "eula-trigger",
71
+ onClick: handleOpen
72
+ }, t('license.footer'))), /*#__PURE__*/_react.default.createElement(_Button.default, {
73
+ disabled: !agreed || nextDisabled,
74
+ color: "primary",
75
+ variant: "contained",
76
+ className: "next-button",
77
+ onClick: onContinue
78
+ }, t('common.next'))), open && /*#__PURE__*/_react.default.createElement(_confirm.default, {
79
+ title: t('license.title'),
80
+ description: /*#__PURE__*/_react.default.createElement(_server.default, {
81
+ className: "eula-content"
82
+ }),
83
+ color: "primary",
84
+ onCancel: handleCancel,
85
+ onConfirm: handleConfirm
86
+ }));
87
+ }
88
+
89
+ ServerEula.propTypes = {
90
+ onContinue: _propTypes.default.func.isRequired,
91
+ nextDisabled: _propTypes.default.bool
92
+ };
93
+ ServerEula.defaultProps = {
94
+ nextDisabled: false
95
+ };
96
+
97
+ const Div = _styledComponents.default.div.withConfig({
98
+ displayName: "server-eula__Div",
99
+ componentId: "sc-16uy00s-0"
100
+ })(["width:90%;max-width:450px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;@media (max-width:", "px){flex-direction:column;}.eula-checkbox{display:flex;align-items:center;.eula-trigger{cursor:pointer;font-size:14px;&:hover{color:", ";}}}.next-button{width:120px;}"], props => props.theme.breakpoints.values.sm, props => props.theme.palette.primary.main);
package/lib/locales/en.js CHANGED
@@ -17,11 +17,13 @@ module.exports = {
17
17
  next: 'Next',
18
18
  purchase: 'Purchase',
19
19
  redeem: 'Redeem',
20
- redirecting: 'Redirecting'
20
+ redirecting: 'Redirecting',
21
+ cancel: 'Cancel',
22
+ confirm: 'Confirm'
21
23
  },
22
24
  plan: {
23
- title: 'Select Blocklet Server Type',
24
- subTitle: 'Please select payment method and Blocklet Server type',
25
+ title: 'Select Blocklet Server Plan',
26
+ subTitle: 'Select payment method and plan',
25
27
  loadListFailed: 'Plan list load error',
26
28
  paymentCredit: {
27
29
  status: {
@@ -35,9 +37,13 @@ module.exports = {
35
37
  useFiat: 'Credit Card',
36
38
  noPlan: 'No blocklet server available for purchase'
37
39
  },
40
+ license: {
41
+ title: 'End User License Agreement',
42
+ footer: 'I agree to the Blocklet Server EULA'
43
+ },
38
44
  prepare: {
39
45
  title: 'Naming Blocklet Server',
40
- subTitle: 'Please enter the name and description of the Blocklet Server'
46
+ subTitle: 'Please enter server name and description, they will appear in your server passport'
41
47
  },
42
48
  launch: {
43
49
  title: 'Create Blocklet Server',
@@ -71,7 +77,7 @@ module.exports = {
71
77
  },
72
78
  redeem: {
73
79
  title: 'Redeem Blocklet Server',
74
- subTitle: 'Name and describe the Blocklet Server you are going to redeem',
80
+ subTitle: 'Name the blocklet server you are going to redeem, the name will exist on server passport',
75
81
  dialog: {
76
82
  title: 'Redeem Blocklet Server',
77
83
  scan: 'Scan the QR code below with your DID wallet to complete redeem',
package/lib/locales/zh.js CHANGED
@@ -12,10 +12,12 @@ module.exports = {
12
12
  description: '描述',
13
13
  retry: '重试',
14
14
  launch: '启动',
15
- next: '下一步',
15
+ next: '继续',
16
16
  redeem: '兑换',
17
17
  purchase: '购买',
18
- redirecting: '跳转中'
18
+ redirecting: '跳转中',
19
+ cancel: '取消',
20
+ confirm: '同意'
19
21
  },
20
22
  plan: {
21
23
  title: '创建节点',
@@ -33,9 +35,13 @@ module.exports = {
33
35
  useFiat: '信用卡支付',
34
36
  noPlan: '没有可购买的节点类型'
35
37
  },
38
+ license: {
39
+ title: '节点用户协议',
40
+ footer: '我已经阅读并同意节点的用户协议'
41
+ },
36
42
  prepare: {
37
43
  title: '命名节点',
38
- subTitle: '请输入要创建的节点名称和描述'
44
+ subTitle: '请输入要创建的节点名称和描述,它们将显示在您的节点通行证中'
39
45
  },
40
46
  launch: {
41
47
  title: '创建节点',
@@ -69,7 +75,7 @@ module.exports = {
69
75
  },
70
76
  redeem: {
71
77
  title: '启动节点',
72
- subTitle: '为你的节点起个名字吧',
78
+ subTitle: '为你的节点起个名字吧,节点名字将会打印在节点通行证上',
73
79
  dialog: {
74
80
  title: '兑换节点',
75
81
  scan: '用您的 DID 钱包扫描下面的二维码,提供 NFT',
package/lib/prepare.js CHANGED
@@ -11,8 +11,6 @@ var _reactRouterDom = require("react-router-dom");
11
11
 
12
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
13
13
 
14
- var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
15
-
16
14
  var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
17
15
 
18
16
  var _utils = require("@arcblock/did-connect/lib/utils");
@@ -27,6 +25,8 @@ var _launcherConstant = require("@blocklet/launcher-constant");
27
25
 
28
26
  var _pageHeader = _interopRequireDefault(require("./components/page-header"));
29
27
 
28
+ var _serverEula = _interopRequireDefault(require("./components/server-eula"));
29
+
30
30
  var _request = _interopRequireDefault(require("./contexts/request"));
31
31
 
32
32
  var _locale = require("./contexts/locale");
@@ -203,16 +203,10 @@ function PreparePage() {
203
203
  labelWidth: 0
204
204
  }), error.description && /*#__PURE__*/_react.default.createElement(_FormHelperText.default, null, error.description)))), /*#__PURE__*/_react.default.createElement("div", {
205
205
  className: "botton-container"
206
- }, /*#__PURE__*/_react.default.createElement(_Button.default, {
207
- disabled: !name.trim() || !description.trim(),
208
- style: {
209
- width: 300
210
- },
211
- color: "primary",
212
- variant: "contained",
213
- rounded: true,
214
- onClick: handleLaunch
215
- }, t('common.next')))), /*#__PURE__*/_react.default.createElement(_Connect.default, {
206
+ }, /*#__PURE__*/_react.default.createElement(_serverEula.default, {
207
+ onContinue: handleLaunch,
208
+ nextDisabled: !name.trim() || !description.trim()
209
+ }))), /*#__PURE__*/_react.default.createElement(_Connect.default, {
216
210
  open: showLaunchInstanceDialog,
217
211
  popup: true,
218
212
  action: "launch-instance",
@@ -240,4 +234,4 @@ function PreparePage() {
240
234
  const Container = _styledComponents.default.div.withConfig({
241
235
  displayName: "prepare__Container",
242
236
  componentId: "sc-1ddofcz-0"
243
- })(["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:343px;font-size:14px;input,textarea{font-size:14px;}}.botton-container{margin-top:24px;text-align:center;}"], props => props.theme.breakpoints.down('sm'));
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-top:24px;text-align:center;}"], props => props.theme.breakpoints.down('sm'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/launcher-workflow",
3
- "version": "1.5.65",
3
+ "version": "1.5.66",
4
4
  "description": "Purchase components for Launcher UI",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -39,9 +39,10 @@
39
39
  "dependencies": {
40
40
  "@arcblock/did-connect": "^1.16.49",
41
41
  "@arcblock/icons": "^1.16.49",
42
+ "@arcblock/license": "^1.16.49",
42
43
  "@arcblock/ux": "^1.16.49",
43
- "@blocklet/launcher-constant": "1.5.65",
44
- "@blocklet/launcher-layout": "1.5.65",
44
+ "@blocklet/launcher-constant": "1.5.66",
45
+ "@blocklet/launcher-layout": "1.5.66",
45
46
  "@material-ui/core": "^4.12.3",
46
47
  "@material-ui/icons": "^4.11.2",
47
48
  "@material-ui/lab": "^4.0.0-alpha.60",
@@ -67,5 +68,5 @@
67
68
  "babel-plugin-inline-react-svg": "^2.0.1",
68
69
  "babel-plugin-styled-components": "^1.10.7"
69
70
  },
70
- "gitHead": "f0d418d80249fc4d18fe2fd8481bd64a1010d4f4"
71
+ "gitHead": "054ff34e86c6c725fc76bd94a62664c690f6df15"
71
72
  }