@abtnode/ux 1.16.26-beta-4831bf3f → 1.16.26-beta-5251ab18

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.
Files changed (55) hide show
  1. package/es/blocklet/actions.js +74 -33
  2. package/es/blocklet/component/add-component-core.js +28 -29
  3. package/es/blocklet/component/select-store.js +9 -10
  4. package/es/blocklet/icons.js +3 -1
  5. package/es/blocklet/publish/connect-store-list.js +8 -4
  6. package/es/blocklet/publish/project-list.js +56 -18
  7. package/es/blocklet/publish/release-list.js +0 -1
  8. package/es/locales/ar.js +11 -2
  9. package/es/locales/de.js +12 -3
  10. package/es/locales/en.js +11 -2
  11. package/es/locales/es.js +12 -3
  12. package/es/locales/fr.js +12 -3
  13. package/es/locales/hi.js +12 -3
  14. package/es/locales/i18n.db +0 -0
  15. package/es/locales/id.js +11 -2
  16. package/es/locales/ja.js +12 -3
  17. package/es/locales/ko.js +12 -3
  18. package/es/locales/pt.js +12 -3
  19. package/es/locales/ru.js +11 -2
  20. package/es/locales/th.js +11 -2
  21. package/es/locales/vi.js +11 -2
  22. package/es/locales/zh-tw.js +12 -3
  23. package/es/locales/zh.js +12 -3
  24. package/es/store/connect-actions.js +130 -0
  25. package/es/store/delete.js +8 -2
  26. package/es/store/item.js +5 -9
  27. package/es/util/join-url-keep-search.js +15 -0
  28. package/lib/blocklet/actions.js +82 -38
  29. package/lib/blocklet/component/add-component-core.js +27 -28
  30. package/lib/blocklet/component/select-store.js +9 -10
  31. package/lib/blocklet/icons.js +3 -1
  32. package/lib/blocklet/publish/connect-store-list.js +8 -4
  33. package/lib/blocklet/publish/project-list.js +56 -18
  34. package/lib/blocklet/publish/release-list.js +0 -1
  35. package/lib/locales/ar.js +11 -2
  36. package/lib/locales/de.js +12 -3
  37. package/lib/locales/en.js +11 -2
  38. package/lib/locales/es.js +12 -3
  39. package/lib/locales/fr.js +12 -3
  40. package/lib/locales/hi.js +12 -3
  41. package/lib/locales/i18n.db +0 -0
  42. package/lib/locales/id.js +11 -2
  43. package/lib/locales/ja.js +12 -3
  44. package/lib/locales/ko.js +12 -3
  45. package/lib/locales/pt.js +12 -3
  46. package/lib/locales/ru.js +11 -2
  47. package/lib/locales/th.js +11 -2
  48. package/lib/locales/vi.js +11 -2
  49. package/lib/locales/zh-tw.js +12 -3
  50. package/lib/locales/zh.js +12 -3
  51. package/lib/store/connect-actions.js +138 -0
  52. package/lib/store/delete.js +8 -2
  53. package/lib/store/item.js +5 -9
  54. package/lib/util/join-url-keep-search.js +22 -0
  55. package/package.json +7 -7
@@ -4,39 +4,42 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = BlockletActions;
7
- var _react = require("react");
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
7
  var _styled = _interopRequireDefault(require("@emotion/styled"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _react = require("react");
10
10
  var _reactRouterDom = require("react-router-dom");
11
11
  var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
12
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
13
- var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
14
- var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
12
+ var _constant = require("@abtnode/constant");
13
+ var _MoreVert = _interopRequireDefault(require("@mui/icons-material/MoreVert"));
14
+ var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
15
15
  var _ButtonGroup = _interopRequireDefault(require("@mui/material/ButtonGroup"));
16
16
  var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
17
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
18
- var _MoreVert = _interopRequireDefault(require("@mui/icons-material/MoreVert"));
17
+ var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
18
+ var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
19
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
19
20
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
20
21
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
21
- var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
22
+ var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
23
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
22
24
  var _Radio = _interopRequireDefault(require("@mui/material/Radio"));
23
25
  var _RadioGroup = _interopRequireDefault(require("@mui/material/RadioGroup"));
24
- var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
25
- var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
26
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
26
27
  var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
27
- var _util = require("@blocklet/meta/lib/util");
28
28
  var _context = require("@arcblock/ux/lib/Locale/context");
29
- var _constant = require("@blocklet/constant");
29
+ var _util = require("@blocklet/meta/lib/util");
30
+ var _constant2 = require("@blocklet/constant");
30
31
  var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
31
- var _util2 = require("../util");
32
- var _util3 = require("./util");
33
- var _node = require("../contexts/node");
34
32
  var _confirm = _interopRequireDefault(require("../confirm"));
33
+ var _node = require("../contexts/node");
34
+ var _util2 = require("../util");
35
+ var _joinUrlKeepSearch = _interopRequireDefault(require("../util/join-url-keep-search"));
35
36
  var _icons = _interopRequireDefault(require("./icons"));
37
+ var _util3 = require("./util");
36
38
  var _jsxRuntime = require("react/jsx-runtime");
37
39
  var _templateObject;
38
- const _excluded = ["blocklet", "onStart", "onComplete", "variant", "hasPermission", "useBlockletUrlEvaluation"],
39
- _excluded2 = ["sx"];
40
+ const _excluded = ["blocklet", "onStart", "onComplete", "variant", "hasPermission", "getComponentUrl", "useBlockletUrlEvaluation"],
41
+ _excluded2 = ["sx"],
42
+ _excluded3 = ["style"];
40
43
  /* eslint-disable react/no-unstable-nested-components */
41
44
  /* eslint-disable operator-linebreak */
42
45
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -49,13 +52,13 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
49
52
  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; }
50
53
  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; }
51
54
  function BlockletActions(_ref) {
52
- var _blocklet$controller;
53
55
  let {
54
56
  blocklet,
55
57
  onStart,
56
58
  onComplete,
57
59
  variant,
58
60
  hasPermission,
61
+ getComponentUrl,
59
62
  useBlockletUrlEvaluation
60
63
  } = _ref,
61
64
  rest = _objectWithoutProperties(_ref, _excluded);
@@ -74,16 +77,45 @@ function BlockletActions(_ref) {
74
77
  recommendedUrl
75
78
  } = useBlockletUrlEvaluation(blocklet);
76
79
  const inProgress = (0, _util.isInProgress)(blocklet.status);
77
- const disableStart = (blocklet === null || blocklet === void 0 || (_blocklet$controller = blocklet.controller) === null || _blocklet$controller === void 0 || (_blocklet$controller = _blocklet$controller.status) === null || _blocklet$controller === void 0 ? void 0 : _blocklet$controller.value) === _constant.BLOCKLET_CONTROLLER_STATUS.suspended;
78
-
79
- // TODO: PaymentKitV2 过期恢复后需要能立即启动
80
- // if (!nftState?.expired && blocklet?.controller?.status?.reason === SUSPENDED_REASON.expired) {
81
- // disableStart = false;
82
- // }
83
-
80
+ const [disableStart, setDisableStart] = (0, _react.useState)(false);
81
+ (0, _react.useEffect)(() => {
82
+ var _blocklet$controller;
83
+ if (!(blocklet !== null && blocklet !== void 0 && blocklet.controller)) {
84
+ return;
85
+ }
86
+ setDisableStart((blocklet === null || blocklet === void 0 || (_blocklet$controller = blocklet.controller) === null || _blocklet$controller === void 0 || (_blocklet$controller = _blocklet$controller.status) === null || _blocklet$controller === void 0 ? void 0 : _blocklet$controller.value) === _constant2.BLOCKLET_CONTROLLER_STATUS.suspended);
87
+ const func = async () => {
88
+ try {
89
+ var _blocklet$controller2, _blocklet$controller3, _data$launcherSession;
90
+ const data = await node.api.getLauncherSession({
91
+ input: {
92
+ launcherSessionId: blocklet === null || blocklet === void 0 || (_blocklet$controller2 = blocklet.controller) === null || _blocklet$controller2 === void 0 ? void 0 : _blocklet$controller2.launcherSessionId,
93
+ launcherUrl: blocklet === null || blocklet === void 0 || (_blocklet$controller3 = blocklet.controller) === null || _blocklet$controller3 === void 0 ? void 0 : _blocklet$controller3.launcherUrl
94
+ }
95
+ });
96
+ if (data !== null && data !== void 0 && data.error) {
97
+ console.error('get launcher session failed', data.error);
98
+ return;
99
+ }
100
+ setDisableStart([_constant.LAUNCH_SESSION_STATUS.expired, _constant.LAUNCH_SESSION_STATUS.terminated].includes(data === null || data === void 0 || (_data$launcherSession = data.launcherSession) === null || _data$launcherSession === void 0 ? void 0 : _data$launcherSession.status));
101
+ } catch (error) {
102
+ console.error('call getLauncherSession error', error);
103
+ }
104
+ };
105
+ func();
106
+ // eslint-disable-next-line react-hooks/exhaustive-deps
107
+ }, []);
84
108
  const {
85
109
  inService
86
110
  } = node;
111
+ const handleOpenDashboard = () => {
112
+ const mountPoint = "/".concat(blocklet.mountPoint || '/').replace(/\/+/g, '/');
113
+ const href = getComponentUrl === null || getComponentUrl === void 0 ? void 0 : getComponentUrl({
114
+ mountPoint,
115
+ blocklet
116
+ });
117
+ window.open((0, _joinUrlKeepSearch.default)(href, '.well-known/service/admin'));
118
+ };
87
119
  const createHandler = function createHandler(action, fn) {
88
120
  let requireUserConfirm = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
89
121
  return async () => {
@@ -104,7 +136,7 @@ function BlockletActions(_ref) {
104
136
  _Toast.default.error(t('blocklet.noComponent'));
105
137
  return;
106
138
  }
107
- if (!inService && !skipSetup && !((_blocklet$settings = blocklet.settings) !== null && _blocklet$settings !== void 0 && _blocklet$settings.initialized) && blocklet.mode !== _constant.BLOCKLET_MODES.DEVELOPMENT) {
139
+ if (!inService && !skipSetup && !((_blocklet$settings = blocklet.settings) !== null && _blocklet$settings !== void 0 && _blocklet$settings.initialized) && blocklet.mode !== _constant2.BLOCKLET_MODES.DEVELOPMENT) {
108
140
  // 跳转到 setup 流程界面时携带 serverUrl 查询参数
109
141
  const serverUrl = (0, _util3.getServerUrl)(node.info);
110
142
  const url = new URL(recommendedUrl);
@@ -173,7 +205,7 @@ function BlockletActions(_ref) {
173
205
  setConfirmSetting(null);
174
206
  };
175
207
  const name = (0, _util.getDisplayName)(blocklet, true);
176
- const removeSetting = blocklet.mode === _constant.BLOCKLET_MODES.DEVELOPMENT ? {
208
+ const removeSetting = blocklet.mode === _constant2.BLOCKLET_MODES.DEVELOPMENT ? {
177
209
  description: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
178
210
  component: "div",
179
211
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
@@ -353,17 +385,27 @@ function BlockletActions(_ref) {
353
385
  name: t('common.restart'),
354
386
  handler: createHandler('restart', node.api.restartBlocklet, true),
355
387
  disabled: disableStart || blocklet.status !== 'running'
356
- },
357
- // hidden reload: https://github.com/ArcBlock/blocklet-server/issues/8655
358
- // {
359
- // action: 'reload',
360
- // icon: Icons.Reload,
361
- // name: t('common.reload'),
362
- // handler: createHandler('reload', node.api.reloadBlocklet),
363
- // disabled: disableStart || blocklet.status !== 'running',
364
- // },
365
-
366
- (0, _util2.isDownloading)(blocklet.status) ? cancelDownloadAction : removeAction, {
388
+ }, (0, _util2.isDownloading)(blocklet.status) ? cancelDownloadAction : removeAction, {
389
+ separator: true
390
+ }, !inService ? {
391
+ action: 'dashboard',
392
+ icon: _ref4 => {
393
+ let {
394
+ style
395
+ } = _ref4,
396
+ restProps = _objectWithoutProperties(_ref4, _excluded3);
397
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.default.Dashboard, _objectSpread(_objectSpread({}, restProps), {}, {
398
+ style: _objectSpread(_objectSpread({}, style), {}, {
399
+ width: '26px',
400
+ height: '26px',
401
+ paddingRight: '3px'
402
+ })
403
+ }));
404
+ },
405
+ name: t('sidebar.dashboard'),
406
+ handler: handleOpenDashboard,
407
+ disabled: disableStart || blocklet.status !== 'running'
408
+ } : null, {
367
409
  separator: true
368
410
  }, {
369
411
  onlyInMenu: true,
@@ -491,6 +533,7 @@ function BlockletActions(_ref) {
491
533
  }));
492
534
  }
493
535
  BlockletActions.propTypes = {
536
+ getComponentUrl: _propTypes.default.func,
494
537
  blocklet: _propTypes.default.object.isRequired,
495
538
  onStart: _propTypes.default.func.isRequired,
496
539
  onComplete: _propTypes.default.func.isRequired,
@@ -499,6 +542,7 @@ BlockletActions.propTypes = {
499
542
  useBlockletUrlEvaluation: _propTypes.default.func
500
543
  };
501
544
  BlockletActions.defaultProps = {
545
+ getComponentUrl: null,
502
546
  variant: 'menu',
503
547
  hasPermission: false,
504
548
  useBlockletUrlEvaluation: () => {
@@ -4,47 +4,47 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = AddComponentCore;
7
- var _react = require("react");
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _react = require("react");
9
9
  var _reactRouterDom = require("react-router-dom");
10
- var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
11
- var _flatten = _interopRequireDefault(require("lodash/flatten"));
12
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
13
- var _isNil = _interopRequireDefault(require("lodash/isNil"));
14
- var _pageHeader = _interopRequireDefault(require("@blocklet/launcher-layout/lib/page-header"));
15
- var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
16
- var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
17
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
18
- var _Link = _interopRequireDefault(require("@mui/icons-material/Link"));
19
- var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
20
- var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
21
- var _styled = _interopRequireDefault(require("@emotion/styled"));
10
+ var _serverless = require("@abtnode/util/lib/serverless");
11
+ var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
12
+ var _AnimationWaiter = _interopRequireDefault(require("@arcblock/ux/lib/AnimationWaiter"));
13
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
22
14
  var _context = require("@arcblock/ux/lib/Locale/context");
23
15
  var _constant = require("@blocklet/constant");
24
16
  var _launcherLayout = _interopRequireDefault(require("@blocklet/launcher-layout"));
25
17
  var _step = require("@blocklet/launcher-layout/lib/context/step");
26
- var _Box = _interopRequireDefault(require("@mui/material/Box"));
27
- var _constant2 = require("@abtnode/constant");
28
- var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
29
- var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
30
- var _AnimationWaiter = _interopRequireDefault(require("@arcblock/ux/lib/AnimationWaiter"));
31
18
  var _launchResultMessage = _interopRequireDefault(require("@blocklet/launcher-layout/lib/launch-result-message"));
32
- var _util = require("@blocklet/meta/lib/util");
19
+ var _pageHeader = _interopRequireDefault(require("@blocklet/launcher-layout/lib/page-header"));
20
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
21
+ var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
22
+ var _Link = _interopRequireDefault(require("@mui/icons-material/Link"));
23
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
24
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
25
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
26
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
27
+ var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
28
+ var _flatten = _interopRequireDefault(require("lodash/flatten"));
29
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
30
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
31
+ var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
33
32
  var _urlPathFriendly = _interopRequireDefault(require("@blocklet/meta/lib/url-path-friendly"));
33
+ var _util = require("@blocklet/meta/lib/util");
34
34
  var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
35
- var _node = require("../../contexts/node");
36
35
  var _blocklet = require("../../contexts/blocklet");
37
- var _util2 = require("../../util");
38
- var _schemaForm = _interopRequireDefault(require("../../schema-form"));
36
+ var _configSpace = require("../../contexts/config-space");
37
+ var _node = require("../../contexts/node");
39
38
  var _required = _interopRequireDefault(require("../../form/required"));
40
- var _purchase = require("../purchase");
41
- var _util3 = require("../router/util");
39
+ var _schemaForm = _interopRequireDefault(require("../../schema-form"));
40
+ var _util2 = require("../../util");
42
41
  var _agreement = _interopRequireDefault(require("../agreement"));
43
42
  var _installFromUrl = _interopRequireDefault(require("../install-from-url"));
43
+ var _purchase = require("../purchase");
44
+ var _util3 = require("../router/util");
45
+ var _didSpace = _interopRequireDefault(require("./did-space"));
44
46
  var _selectStore = _interopRequireDefault(require("./select-store"));
45
47
  var _storeBlockletList = _interopRequireDefault(require("./store-blocklet-list"));
46
- var _didSpace = _interopRequireDefault(require("./did-space"));
47
- var _configSpace = require("../../contexts/config-space");
48
48
  var _jsxRuntime = require("react/jsx-runtime");
49
49
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
50
50
  const _excluded = ["name", "validation"],
@@ -232,7 +232,6 @@ function AddComponentCore(_ref3) {
232
232
  const {
233
233
  meta
234
234
  } = component.current;
235
- const isServerlessMode = nodeInfo.mode === _constant2.NODE_MODES.SERVERLESS;
236
235
  const updateParams = obj => setParams(x => _objectSpread(_objectSpread({}, x), obj));
237
236
  (0, _react.useEffect)(() => {
238
237
  if (params.pathPrefix) {
@@ -738,7 +737,7 @@ function AddComponentCore(_ref3) {
738
737
  }
739
738
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_selectStore.default, {
740
739
  stores: stores,
741
- extra: !isServerlessMode ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
740
+ extra: !(0, _serverless.isInServerlessMode)(nodeInfo) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
742
741
  variant: "text",
743
742
  color: "primary",
744
743
  "data-cy": "add-component-from-url",
@@ -4,20 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = SelectStore;
7
- var _react = require("react");
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _styled = _interopRequireDefault(require("@emotion/styled"));
10
- var _context = require("@arcblock/ux/lib/Locale/context");
11
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
12
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
13
- var _constant = require("@abtnode/constant");
8
+ var _react = require("react");
9
+ var _serverless = require("@abtnode/util/lib/serverless");
14
10
  var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
11
+ var _context = require("@arcblock/ux/lib/Locale/context");
12
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
15
13
  var _ArrowDropDown = _interopRequireDefault(require("@mui/icons-material/ArrowDropDown"));
14
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
15
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
16
16
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
17
- var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
18
17
  var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
19
- var _node = require("../../contexts/node");
18
+ var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
20
19
  var _blocklet = require("../../contexts/blocklet");
20
+ var _node = require("../../contexts/node");
21
21
  var _add = _interopRequireDefault(require("../../store/add"));
22
22
  var _item = _interopRequireDefault(require("../../store/item"));
23
23
  var _util = require("../../util");
@@ -66,7 +66,6 @@ function SelectStore(_ref) {
66
66
  protected: true
67
67
  })), ...appStoreList], 'url');
68
68
  const currentRegistry = storeUrl && storeList.find(x => storeUrl === x.url) || storeList[0];
69
- const isServerlessMode = nodeInfo.mode === _constant.NODE_MODES.SERVERLESS;
70
69
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
71
70
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(SelectStoreTitle, {
72
71
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
@@ -141,7 +140,7 @@ function SelectStore(_ref) {
141
140
  }
142
141
  })
143
142
  }, x.url);
144
- }), !isServerlessMode && /*#__PURE__*/(0, _jsxRuntime.jsx)(_add.default, {
143
+ }), !(0, _serverless.isInServerlessMode)(nodeInfo) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_add.default, {
145
144
  disabled: loading,
146
145
  storeList: storeList,
147
146
  teamDid: teamDid,
@@ -13,6 +13,7 @@ var _Settings = _interopRequireDefault(require("@mui/icons-material/Settings"));
13
13
  var _Receipt = _interopRequireDefault(require("@mui/icons-material/Receipt"));
14
14
  var _Group = _interopRequireDefault(require("@mui/icons-material/Group"));
15
15
  var _NotInterested = _interopRequireDefault(require("@mui/icons-material/NotInterested"));
16
+ var _Dashboard = _interopRequireDefault(require("@arcblock/icons/lib/Dashboard"));
16
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18
  var _default = exports.default = {
18
19
  Start: _PlayArrow.default,
@@ -23,5 +24,6 @@ var _default = exports.default = {
23
24
  Config: _Settings.default,
24
25
  Log: _Receipt.default,
25
26
  Group: _Group.default,
26
- Cancel: _NotInterested.default
27
+ Cancel: _NotInterested.default,
28
+ Dashboard: _Dashboard.default
27
29
  };
@@ -19,7 +19,8 @@ function ConnectStoreList(_ref) {
19
19
  projectId,
20
20
  releaseType,
21
21
  publishedStoreIds,
22
- onPublish
22
+ onPublish,
23
+ onDelete
23
24
  } = _ref;
24
25
  const storeList = (blocklet === null || blocklet === void 0 || (_blocklet$settings = blocklet.settings) === null || _blocklet$settings === void 0 ? void 0 : _blocklet$settings.storeList) || [];
25
26
  const connectedMap = (0, _react.useMemo)(() => {
@@ -47,13 +48,14 @@ function ConnectStoreList(_ref) {
47
48
  store: x,
48
49
  published: (publishedStoreIds === null || publishedStoreIds === void 0 ? void 0 : publishedStoreIds.indexOf(x.id)) > -1,
49
50
  connected: !!connectedMap[x.url],
50
- onPublish: onPublish
51
+ onPublish: onPublish,
52
+ onDelete: onDelete
51
53
  })
52
54
  })
53
55
  }, x.url)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_add.default, {
54
56
  onAdd: handleAddStore,
55
57
  teamDid: did,
56
- blockletRegistryList: storeList
58
+ storeList: storeList
57
59
  })]
58
60
  });
59
61
  }
@@ -63,10 +65,12 @@ ConnectStoreList.propTypes = {
63
65
  releaseId: _propTypes.default.string.isRequired,
64
66
  releaseType: _propTypes.default.string.isRequired,
65
67
  onPublish: _propTypes.default.func,
68
+ onDelete: _propTypes.default.func,
66
69
  publishedStoreIds: _propTypes.default.arrayOf(_propTypes.default.string)
67
70
  };
68
71
  ConnectStoreList.defaultProps = {
69
72
  publishedStoreIds: [],
70
- onPublish: () => {}
73
+ onPublish: () => {},
74
+ onDelete: () => {}
71
75
  };
72
76
  var _default = exports.default = ConnectStoreList;
@@ -21,7 +21,9 @@ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
21
21
  var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
22
22
  var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
23
23
  var _RelativeTime = _interopRequireDefault(require("@arcblock/ux/lib/RelativeTime"));
24
+ var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
24
25
  var _material = require("@mui/material");
26
+ var _session = require("../../contexts/session");
25
27
  var _blocklet = require("../../contexts/blocklet");
26
28
  var _node = require("../../contexts/node");
27
29
  var _emptySpinner = _interopRequireDefault(require("../../empty-spinner"));
@@ -44,11 +46,15 @@ function ProjectList() {
44
46
  const {
45
47
  api
46
48
  } = (0, _node.useNodeContext)();
49
+ const {
50
+ api: sessionApi
51
+ } = (0, _session.useSessionContext)();
47
52
  const [loading, setLoading] = (0, _react.useState)(true);
48
53
  const {
49
54
  blocklet
50
55
  } = (0, _blocklet.useBlockletContext)();
51
56
  const [deleteConfirm, setDeleteConfirm] = (0, _react.useState)(null);
57
+ const [openDidConnect, setOpenDidConnect] = (0, _react.useState)(false);
52
58
  const {
53
59
  componentDid = ''
54
60
  } = (0, _reactRouterDom.useParams)();
@@ -76,23 +82,27 @@ function ProjectList() {
76
82
  const onDeleteProject = project => {
77
83
  setDeleteConfirm(project);
78
84
  };
79
- const deleteProject = () => {
85
+ const confirmDeleteProject = () => {
80
86
  setLoading(false);
81
- const projectId = deleteConfirm.id;
82
- api.deleteProject({
83
- input: {
84
- did: blocklet.meta.did,
85
- projectId
86
- }
87
- }).then(() => {
88
- setLoading(false);
89
- getProjects();
90
- _Toast.default.success(t('common.removeSuccess'));
91
- setDeleteConfirm(null);
92
- }).catch(err => {
93
- setLoading(false);
94
- _Toast.default.error(err.message);
95
- });
87
+ setOpenDidConnect(true);
88
+ };
89
+ const handleDidConnectClose = () => {
90
+ setOpenDidConnect(false);
91
+ setDeleteConfirm(null);
92
+ };
93
+ const handleDidConnectDidError = err => {
94
+ _Toast.default.error(err.message);
95
+ setOpenDidConnect(false);
96
+ setDeleteConfirm(null);
97
+ };
98
+ const handleDidConnectDidSuccess = result => {
99
+ if (!(result !== null && result !== void 0 && result.deleted)) {
100
+ _Toast.default.error('Delete project failed');
101
+ return;
102
+ }
103
+ getProjects();
104
+ setOpenDidConnect(false);
105
+ setDeleteConfirm(null);
96
106
  };
97
107
  (0, _react.useEffect)(() => {
98
108
  getProjects();
@@ -277,6 +287,34 @@ function ProjectList() {
277
287
  }
278
288
  }
279
289
  }].filter(Boolean);
290
+ const didConnect = openDidConnect ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, {
291
+ open: true,
292
+ popup: true,
293
+ onClose: handleDidConnectClose,
294
+ action: "check-has-project-id",
295
+ locale: locale,
296
+ checkFn: sessionApi.get,
297
+ saveConnect: false,
298
+ forceConnected: false,
299
+ checkTimeout: 5 * 60 * 1000,
300
+ onSuccess: handleDidConnectDidSuccess,
301
+ onError: handleDidConnectDidError,
302
+ extraParams: {
303
+ projectId: deleteConfirm.id,
304
+ did: blocklet.meta.did,
305
+ name: deleteConfirm.blockletTitle
306
+ },
307
+ messages: {
308
+ title: t('blocklet.publish.deleteProject.title', {
309
+ name: deleteConfirm.blockletTitle
310
+ }),
311
+ scan: t('blocklet.publish.deleteProject.scan', {
312
+ name: deleteConfirm.blockletTitle
313
+ }),
314
+ confirm: t('blocklet.publish.deleteProject.confirm'),
315
+ success: t('blocklet.publish.deleteProject.success')
316
+ }
317
+ }) : null;
280
318
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Main, {
281
319
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
282
320
  display: "flex",
@@ -332,9 +370,9 @@ function ProjectList() {
332
370
  title: "".concat(t('common.delete'), " ").concat(deleteConfirm.blockletTitle),
333
371
  description: t('blocklet.publish.deleteBlockletTip'),
334
372
  confirm: t('common.confirm'),
335
- onConfirm: deleteProject,
373
+ onConfirm: confirmDeleteProject,
336
374
  onCancel: () => setDeleteConfirm(null)
337
- })]
375
+ }), didConnect]
338
376
  });
339
377
  }
340
378
  ProjectList.propTypes = {};
@@ -244,7 +244,6 @@ function ReleaseList() {
244
244
  installUrl = url.href;
245
245
  downloadUrl = (0, _urlJoin.default)("".concat(_constant.WELLKNOWN_SERVICE_PATH_PREFIX, "/api/project/").concat(blocklet.meta.did, "/").concat(project.id, "/").concat(project.lastReleaseId, "/download/").concat((project.lastReleaseFiles || [])[0]));
246
246
  }
247
- console.error('--debug--', release);
248
247
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
249
248
  display: "flex",
250
249
  alignItems: "center",
package/lib/locales/ar.js CHANGED
@@ -359,7 +359,9 @@ var _default = exports.default = {
359
359
  uploaded: 'تم التحميل',
360
360
  uploadToStore: 'تحميل إلى المتجر',
361
361
  upload: 'تحميل',
362
- blockletStudio: 'استوديو بلوكليت'
362
+ blockletStudio: 'استوديو بلوكليت',
363
+ visitStore: 'زيارة المتجر',
364
+ reconnect: 'إعادة الاتصال'
363
365
  },
364
366
  blocklet: {
365
367
  external: 'خارجي',
@@ -706,7 +708,14 @@ var _default = exports.default = {
706
708
  publishToStoreSuccess: 'تم نشر بلوكليت بنجاح في المتجر',
707
709
  connectStoreSuccess: 'تم الاتصال بمتجر البلوكليت بنجاح',
708
710
  uploadToStoreSuccess: 'تم تحميل بلوكليت بنجاح في المتجر ، تحتاج إلى نشره في المتجر',
709
- viewLastRelease: 'عرض آخر إصدار'
711
+ viewLastRelease: 'عرض آخر إصدار',
712
+ reconnectStoreTip: 'بعد إعادة الاتصال، سيتم ربط مطور جديد. هل أنت متأكد أنك تريد إعادة الاتصال؟',
713
+ deleteProject: {
714
+ title: 'احذف {name}',
715
+ scan: 'امسح رمز الاستجابة السريعة أدناه لحذف {name}',
716
+ confirm: 'يرجى تأكيد استخدام محفظة الهوية اللامركزية',
717
+ success: 'تم حذف مشروع Blocklet ، يرجى متابعة العملية الخاصة بك.'
718
+ }
710
719
  },
711
720
  titleValidationError: 'يجب أن يكون طول العنوان على الأقل 3 أحرف',
712
721
  descriptionValidationError: 'يجب أن تكون طول الوصف بين 3 و 160 حرفًا'
package/lib/locales/de.js CHANGED
@@ -359,7 +359,9 @@ var _default = exports.default = {
359
359
  uploaded: 'Hochgeladen',
360
360
  uploadToStore: 'Upload in den Shop',
361
361
  upload: 'Hochladen',
362
- blockletStudio: 'Blocklet Studio'
362
+ blockletStudio: 'Blocklet Studio',
363
+ visitStore: 'Besuche den Laden',
364
+ reconnect: 'Verbinden wiederherstellen'
363
365
  },
364
366
  blocklet: {
365
367
  external: 'Extern',
@@ -669,7 +671,7 @@ var _default = exports.default = {
669
671
  createBlocklet: 'Neuer Blocklet',
670
672
  deleteBlockletTip: 'Der Blocklet kann nach dem Löschen nicht wiederhergestellt werden, bitte bestätigen',
671
673
  componentNotRunning: 'Komponente {name} läuft nicht, starten Sie sie bitte zuerst',
672
- releaseEmptyTip: 'Hier gibt es keine Veröffentlichungen',
674
+ releaseEmptyTip: 'Es gibt hier keine Veröffentlichungen',
673
675
  createReleaseTip: 'Du kannst eine Veröffentlichung des Blocklets erstellen, zusammen mit Versionshinweisen und Ressourcen, die andere Personen nutzen können.',
674
676
  createRelease: 'Neue Veröffentlichung',
675
677
  deleteReleaseTip: 'Die Veröffentlichung kann nach Löschung nicht wiederhergestellt werden',
@@ -706,7 +708,14 @@ var _default = exports.default = {
706
708
  publishToStoreSuccess: 'Blocklet erfolgreich im Store veröffentlicht',
707
709
  connectStoreSuccess: 'Blocklet Store erfolgreich verbunden',
708
710
  uploadToStoreSuccess: 'Blocklet erfolgreich im Store hochgeladen, du musst es im Store veröffentlichen',
709
- viewLastRelease: 'Letzte Version anzeigen'
711
+ viewLastRelease: 'Letzte Version anzeigen',
712
+ reconnectStoreTip: 'Nach dem erneuten Verbinden wird ein neuer Entwickler zugewiesen. Bist du sicher, dass du dich erneut verbinden möchtest?',
713
+ deleteProject: {
714
+ title: 'Lösche {name}',
715
+ scan: 'Scanne den QR-Code unten, um {name} zu löschen',
716
+ confirm: 'Bitte bestätigen Sie die Verwendung der DID-Brieftasche',
717
+ success: 'Das Blocklet-Projekt wurde gelöscht, bitte fahren Sie mit Ihrer Operation fort.'
718
+ }
710
719
  },
711
720
  titleValidationError: 'Die Länge des Titels muss mindestens 3 Zeichen betragen',
712
721
  descriptionValidationError: 'Die Beschreibungslänge muss zwischen 3 und 160 Zeichen liegen'
package/lib/locales/en.js CHANGED
@@ -248,6 +248,7 @@ var _default = exports.default = {
248
248
  noticeTitle: 'Notice',
249
249
  notification: 'Notification',
250
250
  open: 'Open',
251
+ visitStore: 'Visit Store',
251
252
  management: 'Management',
252
253
  os: 'Operating System',
253
254
  overview: 'Overview',
@@ -262,6 +263,7 @@ var _default = exports.default = {
262
263
  protected: 'Protected',
263
264
  protocol: 'Protocol',
264
265
  purchase: 'Purchase',
266
+ reconnect: 'Reconnect',
265
267
  readMore: 'More',
266
268
  redirect: 'Redirect',
267
269
  redirectCode: 'Redirect Code',
@@ -664,9 +666,10 @@ var _default = exports.default = {
664
666
  blockletEmptyTip: 'There aren’t any blocklets here',
665
667
  createBlockletTip: 'You can create new blocklet through existing resources, components, and configuration in this application',
666
668
  createBlocklet: 'New blocklet',
667
- deleteBlockletTip: 'The blocklet cannot be recovered after deletion, please confirm',
669
+ deleteBlockletTip: "The blocklet cannot be recovered after deletion, You also can't republish a new version of the app in question, please confirm",
670
+ reconnectStoreTip: 'After reconnecting, a new developer will be bound. Are you sure you want to reconnect?',
668
671
  componentNotRunning: 'Component {name} is not running, please start it first',
669
- releaseEmptyTip: 'There aren’t any releases here',
672
+ releaseEmptyTip: "There aren't any releases here",
670
673
  viewLastRelease: 'View last release',
671
674
  createReleaseTip: 'You can create a release of the blocklet, along with release notes and resources, for other people to use',
672
675
  createRelease: 'New release',
@@ -688,6 +691,12 @@ var _default = exports.default = {
688
691
  confirm: 'Confirm using DID Wallet',
689
692
  success: 'Blocklet DID has been generated, please continue your operation'
690
693
  },
694
+ deleteProject: {
695
+ title: 'Delete {name}',
696
+ scan: 'Scan the QR code below to delete {name}',
697
+ confirm: 'Confirm using DID Wallet',
698
+ success: 'Blocklet project has been deleted, please continue your operation'
699
+ },
691
700
  saveDraft: 'Save Draft',
692
701
  releaseNote: 'Release Note',
693
702
  errorTip: {