@abtnode/ux 1.16.26-beta-346cba92 → 1.16.26-beta-818ea1c5

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 (43) hide show
  1. package/es/blocklet/actions.js +43 -23
  2. package/es/blocklet/publish/project-list.js +56 -18
  3. package/es/blocklet/storage/action.js +8 -4
  4. package/es/blocklet/storage/item.js +2 -1
  5. package/es/contexts/blocklet-storage.js +0 -4
  6. package/es/locales/ar.js +8 -3
  7. package/es/locales/de.js +8 -3
  8. package/es/locales/en.js +9 -4
  9. package/es/locales/es.js +9 -4
  10. package/es/locales/fr.js +9 -4
  11. package/es/locales/hi.js +9 -4
  12. package/es/locales/i18n.db +0 -0
  13. package/es/locales/id.js +8 -3
  14. package/es/locales/ja.js +9 -4
  15. package/es/locales/ko.js +9 -4
  16. package/es/locales/pt.js +8 -3
  17. package/es/locales/ru.js +7 -2
  18. package/es/locales/th.js +7 -2
  19. package/es/locales/vi.js +8 -3
  20. package/es/locales/zh-tw.js +7 -2
  21. package/es/locales/zh.js +7 -2
  22. package/lib/blocklet/actions.js +47 -26
  23. package/lib/blocklet/publish/project-list.js +56 -18
  24. package/lib/blocklet/storage/action.js +10 -6
  25. package/lib/blocklet/storage/item.js +2 -1
  26. package/lib/contexts/blocklet-storage.js +0 -4
  27. package/lib/locales/ar.js +8 -3
  28. package/lib/locales/de.js +8 -3
  29. package/lib/locales/en.js +9 -4
  30. package/lib/locales/es.js +9 -4
  31. package/lib/locales/fr.js +9 -4
  32. package/lib/locales/hi.js +9 -4
  33. package/lib/locales/i18n.db +0 -0
  34. package/lib/locales/id.js +8 -3
  35. package/lib/locales/ja.js +9 -4
  36. package/lib/locales/ko.js +9 -4
  37. package/lib/locales/pt.js +8 -3
  38. package/lib/locales/ru.js +7 -2
  39. package/lib/locales/th.js +7 -2
  40. package/lib/locales/vi.js +8 -3
  41. package/lib/locales/zh-tw.js +7 -2
  42. package/lib/locales/zh.js +7 -2
  43. package/package.json +17 -17
package/es/locales/pt.js CHANGED
@@ -665,7 +665,7 @@ export default {
665
665
  createBlocklet: 'Novo bloco',
666
666
  deleteBlockletTip: 'O bloco não pode ser recuperado após a exclusão, por favor, confirme',
667
667
  componentNotRunning: 'O componente {name} não está sendo executado, por favor, inicie-o primeiro',
668
- releaseEmptyTip: 'Não há lançamentos aqui',
668
+ releaseEmptyTip: 'Não há nenhum lançamento aqui',
669
669
  createReleaseTip: 'Você pode criar um lançamento do blocklet, juntamente com notas de lançamento e recursos, para que outras pessoas possam usar',
670
670
  createRelease: 'Novo lançamento',
671
671
  deleteReleaseTip: 'A liberação não pode ser recuperada após exclusão',
@@ -703,7 +703,13 @@ export default {
703
703
  connectStoreSuccess: 'Loja de Blocos conectada com sucesso',
704
704
  uploadToStoreSuccess: 'Blocklet enviado para a Store com sucesso, você precisa publicá-lo na Store',
705
705
  viewLastRelease: 'Visualizar última versão',
706
- reconnectStoreTip: 'Após reconectar, um novo desenvolvedor será vinculado. Você tem certeza de que deseja reconectar?'
706
+ reconnectStoreTip: 'Após reconectar, um novo desenvolvedor será vinculado. Você tem certeza de que deseja reconectar?',
707
+ deleteProject: {
708
+ title: 'Excluir {name}',
709
+ scan: 'Digitalize o código QR abaixo para excluir {name}',
710
+ confirm: 'Confirmar usando a Carteira DID',
711
+ success: 'O projeto Blocklet foi excluído, por favor, continue sua operação'
712
+ }
707
713
  },
708
714
  titleValidationError: 'O comprimento do título deve ter pelo menos 3 caracteres',
709
715
  descriptionValidationError: 'O comprimento da descrição deve estar entre 3 e 160 caracteres.'
@@ -1610,7 +1616,6 @@ export default {
1610
1616
  title: 'Excluir gateway',
1611
1617
  succeeded: 'Espaços DIDs {name} excluídos com sucesso.',
1612
1618
  failed: 'Falha ao excluir o gateway',
1613
- failedForConnected: 'Não é possível excluir um DID Spaces conectado',
1614
1619
  failedForSelected: 'Não é possível excluir um DID Spaces selecionado'
1615
1620
  },
1616
1621
  connect: {
package/es/locales/ru.js CHANGED
@@ -703,7 +703,13 @@ export default {
703
703
  connectStoreSuccess: 'Успешное подключение к Blocklet Store',
704
704
  uploadToStoreSuccess: 'Блоклет успешно загружен в магазин, вам нужно опубликовать его в магазине',
705
705
  viewLastRelease: 'Просмотр последнего релиза',
706
- reconnectStoreTip: 'После переподключения будет назначен новый разработчик. Вы уверены, что хотите переподключиться?'
706
+ reconnectStoreTip: 'После переподключения будет назначен новый разработчик. Вы уверены, что хотите переподключиться?',
707
+ deleteProject: {
708
+ title: 'Удалить {name}',
709
+ scan: 'Сканируйте QR-код ниже, чтобы удалить {name}',
710
+ confirm: 'Подтвердите использование кошелька DID',
711
+ success: 'Проект Blocklet был удален, пожалуйста, продолжите вашу операцию.'
712
+ }
707
713
  },
708
714
  titleValidationError: 'Длина заголовка должна быть не менее 3 символов',
709
715
  descriptionValidationError: 'Длина описания должна быть от 3 до 160 символов'
@@ -1610,7 +1616,6 @@ export default {
1610
1616
  title: 'Удалить шлюз',
1611
1617
  succeeded: 'Успешное удаление DID Spaces {name}',
1612
1618
  failed: 'Не удалось удалить шлюз',
1613
- failedForConnected: 'Невозможно удалить подключенное пространство DID',
1614
1619
  failedForSelected: 'Невозможно удалить выбранное пространство DID'
1615
1620
  },
1616
1621
  connect: {
package/es/locales/th.js CHANGED
@@ -703,7 +703,13 @@ export default {
703
703
  connectStoreSuccess: 'เชื่อมต่อ Blocklet Store สำเร็จ',
704
704
  uploadToStoreSuccess: 'อัพโหลด Blocklet เข้าสู่ Store สำเร็จแล้ว คุณต้องเผยแพร่ในร้านค้า',
705
705
  viewLastRelease: 'ดูรายการอัพเดตล่าสุด',
706
- reconnectStoreTip: 'หลังจากเชื่อมต่อใหม่ จะมีนักพัฒนารุ่นใหม่เข้ามาเป็นที่ผูกพัน คุณแน่ใจหรือไม่ว่าต้องการที่จะเชื่อมต่อใหม่หรือไม่?'
706
+ reconnectStoreTip: 'หลังจากเชื่อมต่อใหม่ จะมีนักพัฒนารุ่นใหม่เข้ามาเป็นที่ผูกพัน คุณแน่ใจหรือไม่ว่าต้องการที่จะเชื่อมต่อใหม่หรือไม่?',
707
+ deleteProject: {
708
+ title: 'ลบ {name}',
709
+ scan: 'สแกนรหัส QR ด้านล่างเพื่อลบ {name}',
710
+ confirm: 'ยืนยันการใช้งานกระเป๋าสตางค์ DID',
711
+ success: 'โครงการ Blocklet ได้ถูกลบแล้ว โปรดดำเนินการต่อ'
712
+ }
707
713
  },
708
714
  titleValidationError: 'ความยาวของชื่อต้องมีอย่างน้อย 3 ตัวอักษร',
709
715
  descriptionValidationError: 'ความยาวคำอธิบายต้องอยู่ระหว่าง 3 ถึง 160 ตัวอักษร.'
@@ -1610,7 +1616,6 @@ export default {
1610
1616
  title: 'ลบเกตเวย์',
1611
1617
  succeeded: 'ลบพื้นที่ DID {name} สำเร็จแล้ว.',
1612
1618
  failed: 'การลบเกตเวย์ล้มเหลว',
1613
- failedForConnected: 'ไม่สามารถลบ DID Spaces ที่เชื่อมต่อได้',
1614
1619
  failedForSelected: 'ไม่สามารถลบ DID Spaces ที่เลือกได้'
1615
1620
  },
1616
1621
  connect: {
package/es/locales/vi.js CHANGED
@@ -354,7 +354,7 @@ export default {
354
354
  uploadToStore: 'Tải lên Cửa hàng',
355
355
  upload: 'Tải lên',
356
356
  blockletStudio: 'Blocklet Studio',
357
- visitStore: 'Ghé thăm cửa hàng',
357
+ visitStore: 'Ghé cửa hàng',
358
358
  reconnect: 'Kết nối lại'
359
359
  },
360
360
  blocklet: {
@@ -703,7 +703,13 @@ export default {
703
703
  connectStoreSuccess: 'Kết nối Blocklet Store thành công',
704
704
  uploadToStoreSuccess: 'Blocklet đã tải lên Store thành công, bạn cần phải xuất bản nó trong Store',
705
705
  viewLastRelease: 'Xem phiên bản phát hành gần đây nhất',
706
- reconnectStoreTip: 'Sau khi kết nối lại, một nhà phát triển mới sẽ được liên kết. Bạn có chắc chắn muốn kết nối lại không?'
706
+ reconnectStoreTip: 'Sau khi kết nối lại, một nhà phát triển mới sẽ được liên kết. Bạn có chắc chắn muốn kết nối lại không?',
707
+ deleteProject: {
708
+ title: 'Xóa {name}',
709
+ scan: 'Quét mã QR bên dưới để xóa {name}',
710
+ confirm: 'Xác nhận sử dụng Ví DID',
711
+ success: 'Dự án Blocklet đã bị xóa, vui lòng tiếp tục hoạt động của bạn'
712
+ }
707
713
  },
708
714
  titleValidationError: 'Độ dài tiêu đề phải ít nhất 3 ký tự',
709
715
  descriptionValidationError: 'Chiều dài mô tả phải từ 3 đến 160 ký tự.'
@@ -1610,7 +1616,6 @@ export default {
1610
1616
  title: 'Xóa cổng kết nối',
1611
1617
  succeeded: 'Xóa Dịch vụ DID Thành công {name}.',
1612
1618
  failed: 'Xóa cổng không thành công',
1613
- failedForConnected: 'Không thể xóa DID Spaces đang được kết nối',
1614
1619
  failedForSelected: 'Không thể xóa DID Spaces đã chọn'
1615
1620
  },
1616
1621
  connect: {
@@ -703,7 +703,13 @@ export default {
703
703
  connectStoreSuccess: 'Store 連線成功',
704
704
  uploadToStoreSuccess: 'Blocklet 成功上傳至 Store,請在 Store 中發布',
705
705
  viewLastRelease: '查看最新版本',
706
- reconnectStoreTip: '重新連接後,將綁定一個新的開發者。你確定要重新連接嗎?'
706
+ reconnectStoreTip: '重新連接後,將綁定一個新的開發者。你確定要重新連接嗎?',
707
+ deleteProject: {
708
+ title: '刪除{name}',
709
+ scan: '掃描下方的QR碼以刪除{name}',
710
+ confirm: '確認使用DID錢包',
711
+ success: 'Blocklet 專案已被刪除,請繼續進行操作'
712
+ }
707
713
  },
708
714
  titleValidationError: '標題長度必須至少為3到40個字符',
709
715
  descriptionValidationError: '描述長度必須介於3到160個字符之間'
@@ -1610,7 +1616,6 @@ export default {
1610
1616
  title: '刪除網關',
1611
1617
  succeeded: '刪除 DID 空間 {name} 成功',
1612
1618
  failed: '刪除閘道失敗',
1613
- failedForConnected: '無法刪除已連接的DID空間',
1614
1619
  failedForSelected: '無法刪除所選的DID空間'
1615
1620
  },
1616
1621
  connect: {
package/es/locales/zh.js CHANGED
@@ -706,7 +706,13 @@ export default {
706
706
  connectStoreSuccess: 'Blocklet 成功连接 Store',
707
707
  uploadToStoreSuccess: 'Blocklet 成功上传至 Store,请在 Store 中发布',
708
708
  viewLastRelease: '查看最新版本',
709
- reconnectStoreTip: '重新连接后,将绑定一个新的开发者。你确定要重新连接吗?'
709
+ reconnectStoreTip: '重新连接后,将绑定一个新的开发者。你确定要重新连接吗?',
710
+ deleteProject: {
711
+ title: '删除{name}',
712
+ scan: '扫描下方的QR码以删除{name}',
713
+ confirm: '确认使用DID钱包',
714
+ success: 'Blocklet 项目已被删除,请继续操作'
715
+ }
710
716
  },
711
717
  titleValidationError: '标题长度必须至少为3到40个字符',
712
718
  descriptionValidationError: '描述长度必须在3到160个字符之间'
@@ -1616,7 +1622,6 @@ export default {
1616
1622
  title: '删除 DID Spaces',
1617
1623
  succeeded: '删除 DID Spaces{name} 成功',
1618
1624
  failed: '删除 DID Spaces 失败',
1619
- failedForConnected: '无法删除一个已连接的 DID Spaces',
1620
1625
  failedForSelected: '无法删除一个已选中的 DID Spaces'
1621
1626
  },
1622
1627
  connect: {
@@ -4,36 +4,37 @@ 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"));
35
- var _icons = _interopRequireDefault(require("./icons"));
33
+ var _node = require("../contexts/node");
34
+ var _util2 = require("../util");
36
35
  var _joinUrlKeepSearch = _interopRequireDefault(require("../util/join-url-keep-search"));
36
+ var _icons = _interopRequireDefault(require("./icons"));
37
+ var _util3 = require("./util");
37
38
  var _jsxRuntime = require("react/jsx-runtime");
38
39
  var _templateObject;
39
40
  const _excluded = ["blocklet", "onStart", "onComplete", "variant", "hasPermission", "getComponentUrl", "useBlockletUrlEvaluation"],
@@ -51,7 +52,6 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
51
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; }
52
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; }
53
54
  function BlockletActions(_ref) {
54
- var _blocklet$controller;
55
55
  let {
56
56
  blocklet,
57
57
  onStart,
@@ -77,13 +77,34 @@ function BlockletActions(_ref) {
77
77
  recommendedUrl
78
78
  } = useBlockletUrlEvaluation(blocklet);
79
79
  const inProgress = (0, _util.isInProgress)(blocklet.status);
80
- 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;
81
-
82
- // TODO: PaymentKitV2 过期恢复后需要能立即启动
83
- // if (!nftState?.expired && blocklet?.controller?.status?.reason === SUSPENDED_REASON.expired) {
84
- // disableStart = false;
85
- // }
86
-
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
+ }, []);
87
108
  const {
88
109
  inService
89
110
  } = node;
@@ -115,7 +136,7 @@ function BlockletActions(_ref) {
115
136
  _Toast.default.error(t('blocklet.noComponent'));
116
137
  return;
117
138
  }
118
- 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) {
119
140
  // 跳转到 setup 流程界面时携带 serverUrl 查询参数
120
141
  const serverUrl = (0, _util3.getServerUrl)(node.info);
121
142
  const url = new URL(recommendedUrl);
@@ -184,7 +205,7 @@ function BlockletActions(_ref) {
184
205
  setConfirmSetting(null);
185
206
  };
186
207
  const name = (0, _util.getDisplayName)(blocklet, true);
187
- const removeSetting = blocklet.mode === _constant.BLOCKLET_MODES.DEVELOPMENT ? {
208
+ const removeSetting = blocklet.mode === _constant2.BLOCKLET_MODES.DEVELOPMENT ? {
188
209
  description: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
189
210
  component: "div",
190
211
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
@@ -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 = {};
@@ -16,7 +16,7 @@ var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
16
16
  var _spaces = require("../../util/spaces");
17
17
  var _delete = _interopRequireDefault(require("./delete"));
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
- const _excluded = ["spaceGateway", "connected", "onDelete", "onConnect", "enableSwitchToSpace"];
19
+ const _excluded = ["spaceGateway", "connected", "onDelete", "onConnect", "enableSwitchToSpace", "backupInProgress"];
20
20
  /**
21
21
  * @description
22
22
  * @param {{
@@ -24,7 +24,8 @@ const _excluded = ["spaceGateway", "connected", "onDelete", "onConnect", "enable
24
24
  * onDelete: (spaceGateway: import('./connected').SpaceGateway) => Promise<void>,
25
25
  * onConnect: (spaceGateway: import('./connected').SpaceGateway) => Promise<void>,
26
26
  * enableSwitchToSpace: true | false,
27
- * connected: false | true
27
+ * connected: false | true,
28
+ * backupInProgress: false | true,
28
29
  * } & import('@mui/material').IconButtonProps} { spaceGateway, onDelete, onConnect, enableSwitchToSpace, connected, ...rest }
29
30
  * @return {React.Component}
30
31
  */
@@ -44,7 +45,8 @@ function SpaceItemAction(_ref) {
44
45
  connected,
45
46
  onDelete,
46
47
  onConnect,
47
- enableSwitchToSpace
48
+ enableSwitchToSpace,
49
+ backupInProgress
48
50
  } = _ref,
49
51
  rest = _objectWithoutProperties(_ref, _excluded);
50
52
  const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
@@ -134,7 +136,7 @@ function SpaceItemAction(_ref) {
134
136
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItemText, {
135
137
  children: t('storage.spaces.connect.switchToSpace')
136
138
  })]
137
- }), !connected && /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.default, {
139
+ }), !backupInProgress && /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.default, {
138
140
  spaceGateway: spaceGateway,
139
141
  onDelete: onDelete
140
142
  })]
@@ -152,11 +154,13 @@ SpaceItemAction.propTypes = {
152
154
  connected: _propTypes.default.bool.isRequired,
153
155
  enableSwitchToSpace: _propTypes.default.bool,
154
156
  onDelete: _propTypes.default.func,
155
- onConnect: _propTypes.default.func
157
+ onConnect: _propTypes.default.func,
158
+ backupInProgress: _propTypes.default.bool
156
159
  };
157
160
  SpaceItemAction.defaultProps = {
158
161
  onDelete: () => {},
159
162
  onConnect: () => {},
160
- enableSwitchToSpace: true
163
+ enableSwitchToSpace: true,
164
+ backupInProgress: false
161
165
  };
162
166
  var _default = exports.default = SpaceItemAction;
@@ -455,7 +455,8 @@ function SpaceItem(_ref) {
455
455
  connected: connected,
456
456
  onDelete: onDelete,
457
457
  onConnect: onConnect,
458
- enableSwitchToSpace: (backupProgress === null || backupProgress === void 0 ? void 0 : backupProgress.completed) || (0, _lodash.isEmpty)(backupProgress === null || backupProgress === void 0 ? void 0 : backupProgress.message)
458
+ enableSwitchToSpace: (backupProgress === null || backupProgress === void 0 ? void 0 : backupProgress.completed) || (0, _lodash.isEmpty)(backupProgress === null || backupProgress === void 0 ? void 0 : backupProgress.message),
459
+ backupInProgress: shouldDisplayBackupProgress
459
460
  })]
460
461
  })]
461
462
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, {
@@ -153,10 +153,6 @@ function BlockletStorageProvider(_ref) {
153
153
  if (!spaceGateway) {
154
154
  return;
155
155
  }
156
- if (spaceGateway.endpoint === backupEndpoint) {
157
- _Toast.default.warning(t('storage.spaces.gateway.delete.failedForConnected'));
158
- return;
159
- }
160
156
  await api.deleteBlockletSpaceGateway({
161
157
  input: {
162
158
  did: blocklet.meta.did,
package/lib/locales/ar.js CHANGED
@@ -360,7 +360,7 @@ var _default = exports.default = {
360
360
  uploadToStore: 'تحميل إلى المتجر',
361
361
  upload: 'تحميل',
362
362
  blockletStudio: 'استوديو بلوكليت',
363
- visitStore: 'قم بزيارة المتجر',
363
+ visitStore: 'زيارة المتجر',
364
364
  reconnect: 'إعادة الاتصال'
365
365
  },
366
366
  blocklet: {
@@ -709,7 +709,13 @@ var _default = exports.default = {
709
709
  connectStoreSuccess: 'تم الاتصال بمتجر البلوكليت بنجاح',
710
710
  uploadToStoreSuccess: 'تم تحميل بلوكليت بنجاح في المتجر ، تحتاج إلى نشره في المتجر',
711
711
  viewLastRelease: 'عرض آخر إصدار',
712
- reconnectStoreTip: 'بعد إعادة الاتصال، سيتم ربط مطور جديد. هل أنت متأكد أنك تريد إعادة الاتصال؟'
712
+ reconnectStoreTip: 'بعد إعادة الاتصال، سيتم ربط مطور جديد. هل أنت متأكد أنك تريد إعادة الاتصال؟',
713
+ deleteProject: {
714
+ title: 'احذف {name}',
715
+ scan: 'امسح رمز الاستجابة السريعة أدناه لحذف {name}',
716
+ confirm: 'يرجى تأكيد استخدام محفظة الهوية اللامركزية',
717
+ success: 'تم حذف مشروع Blocklet ، يرجى متابعة العملية الخاصة بك.'
718
+ }
713
719
  },
714
720
  titleValidationError: 'يجب أن يكون طول العنوان على الأقل 3 أحرف',
715
721
  descriptionValidationError: 'يجب أن تكون طول الوصف بين 3 و 160 حرفًا'
@@ -1616,7 +1622,6 @@ var _default = exports.default = {
1616
1622
  title: 'حذف البوابة',
1617
1623
  succeeded: 'حذف DID Spaces {name} بنجاح',
1618
1624
  failed: 'فشل حذف البوابة',
1619
- failedForConnected: 'غير قادر على حذف فضاء DID متصل',
1620
1625
  failedForSelected: 'غير قادر على حذف مساحة DID المحددة'
1621
1626
  },
1622
1627
  connect: {
package/lib/locales/de.js CHANGED
@@ -671,7 +671,7 @@ var _default = exports.default = {
671
671
  createBlocklet: 'Neuer Blocklet',
672
672
  deleteBlockletTip: 'Der Blocklet kann nach dem Löschen nicht wiederhergestellt werden, bitte bestätigen',
673
673
  componentNotRunning: 'Komponente {name} läuft nicht, starten Sie sie bitte zuerst',
674
- releaseEmptyTip: 'Hier gibt es keine Veröffentlichungen',
674
+ releaseEmptyTip: 'Es gibt hier keine Veröffentlichungen',
675
675
  createReleaseTip: 'Du kannst eine Veröffentlichung des Blocklets erstellen, zusammen mit Versionshinweisen und Ressourcen, die andere Personen nutzen können.',
676
676
  createRelease: 'Neue Veröffentlichung',
677
677
  deleteReleaseTip: 'Die Veröffentlichung kann nach Löschung nicht wiederhergestellt werden',
@@ -709,7 +709,13 @@ var _default = exports.default = {
709
709
  connectStoreSuccess: 'Blocklet Store erfolgreich verbunden',
710
710
  uploadToStoreSuccess: 'Blocklet erfolgreich im Store hochgeladen, du musst es im Store veröffentlichen',
711
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?'
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
+ }
713
719
  },
714
720
  titleValidationError: 'Die Länge des Titels muss mindestens 3 Zeichen betragen',
715
721
  descriptionValidationError: 'Die Beschreibungslänge muss zwischen 3 und 160 Zeichen liegen'
@@ -1616,7 +1622,6 @@ var _default = exports.default = {
1616
1622
  title: 'Lösche Gateway',
1617
1623
  succeeded: 'Löschen Sie DID Spaces {name} Erfolg',
1618
1624
  failed: 'Löschen des Gateways fehlgeschlagen',
1619
- failedForConnected: 'Es ist nicht möglich, einen verbundenen DID Space zu löschen',
1620
1625
  failedForSelected: 'Kann den ausgewählten DID-Space nicht löschen'
1621
1626
  },
1622
1627
  connect: {
package/lib/locales/en.js CHANGED
@@ -248,7 +248,7 @@ var _default = exports.default = {
248
248
  noticeTitle: 'Notice',
249
249
  notification: 'Notification',
250
250
  open: 'Open',
251
- visitStore: 'Visit store',
251
+ visitStore: 'Visit Store',
252
252
  management: 'Management',
253
253
  os: 'Operating System',
254
254
  overview: 'Overview',
@@ -666,10 +666,10 @@ var _default = exports.default = {
666
666
  blockletEmptyTip: 'There aren’t any blocklets here',
667
667
  createBlockletTip: 'You can create new blocklet through existing resources, components, and configuration in this application',
668
668
  createBlocklet: 'New blocklet',
669
- 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
670
  reconnectStoreTip: 'After reconnecting, a new developer will be bound. Are you sure you want to reconnect?',
671
671
  componentNotRunning: 'Component {name} is not running, please start it first',
672
- releaseEmptyTip: 'There aren’t any releases here',
672
+ releaseEmptyTip: "There aren't any releases here",
673
673
  viewLastRelease: 'View last release',
674
674
  createReleaseTip: 'You can create a release of the blocklet, along with release notes and resources, for other people to use',
675
675
  createRelease: 'New release',
@@ -691,6 +691,12 @@ var _default = exports.default = {
691
691
  confirm: 'Confirm using DID Wallet',
692
692
  success: 'Blocklet DID has been generated, please continue your operation'
693
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
+ },
694
700
  saveDraft: 'Save Draft',
695
701
  releaseNote: 'Release Note',
696
702
  errorTip: {
@@ -1606,7 +1612,6 @@ var _default = exports.default = {
1606
1612
  title: 'Delete gateway',
1607
1613
  succeeded: 'Delete DID Spaces{name} Success',
1608
1614
  failed: 'Delete gateway failed',
1609
- failedForConnected: 'Unable to delete a connected DID Spaces',
1610
1615
  failedForSelected: 'Unable to delete a selected DID Spaces'
1611
1616
  },
1612
1617
  connect: {
package/lib/locales/es.js CHANGED
@@ -360,7 +360,7 @@ var _default = exports.default = {
360
360
  uploadToStore: 'Subir a la tienda',
361
361
  upload: 'Subir',
362
362
  blockletStudio: 'Blocklet Studio',
363
- visitStore: 'Visita la tienda',
363
+ visitStore: 'Visitar tienda',
364
364
  reconnect: 'Reconecta'
365
365
  },
366
366
  blocklet: {
@@ -671,7 +671,7 @@ var _default = exports.default = {
671
671
  createBlocklet: 'Nuevo bloque',
672
672
  deleteBlockletTip: 'El blocklet no puede ser recuperado después de ser eliminado, por favor confirma',
673
673
  componentNotRunning: 'El componente {name} no está en ejecución, por favor iniciar primero',
674
- releaseEmptyTip: 'No hay lanzamientos aquí',
674
+ releaseEmptyTip: 'No hay ninguna versión aquí',
675
675
  createReleaseTip: 'Puedes crear una versión de la blocklet, junto con notas de lanzamiento y recursos, para que otras personas la puedan utilizar',
676
676
  createRelease: 'Nuevo lanzamiento',
677
677
  deleteReleaseTip: 'La versión no se puede recuperar después de la eliminación',
@@ -709,7 +709,13 @@ var _default = exports.default = {
709
709
  connectStoreSuccess: 'La tienda de Blocklet se conectó correctamente',
710
710
  uploadToStoreSuccess: 'Bloque de carga a la tienda exitosamente, necesitas publicarlo en la tienda',
711
711
  viewLastRelease: 'Ver última versión',
712
- reconnectStoreTip: 'Después de reconectar, se vinculará un nuevo desarrollador. ¿Estás seguro de que deseas reconectar?'
712
+ reconnectStoreTip: 'Después de reconectar, se vinculará un nuevo desarrollador. ¿Estás seguro de que deseas reconectar?',
713
+ deleteProject: {
714
+ title: 'Borrar {name}',
715
+ scan: 'Escanee el código QR a continuación para eliminar a {name}',
716
+ confirm: 'Confirmar usando el monedero DID',
717
+ success: 'El proyecto Blocklet ha sido eliminado, por favor continúa tu operación'
718
+ }
713
719
  },
714
720
  titleValidationError: 'La longitud del título debe ser de al menos 3 caracteres',
715
721
  descriptionValidationError: 'La longitud de la descripción debe estar entre 3 y 160 caracteres'
@@ -1616,7 +1622,6 @@ var _default = exports.default = {
1616
1622
  title: 'Eliminar gateway',
1617
1623
  succeeded: 'Eliminar espacios de DID {name} éxito',
1618
1624
  failed: 'Eliminar puerta de enlace falló',
1619
- failedForConnected: 'No se puede eliminar un espacio de DID conectado',
1620
1625
  failedForSelected: 'No se puede eliminar un DID Espacios seleccionado'
1621
1626
  },
1622
1627
  connect: {