@abtnode/ux 1.16.11-next-069c3537 → 1.16.11-next-3d2b39f7
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/actions.js +5 -4
- package/lib/blocklet/access/config-access.js +3 -3
- package/lib/blocklet/actions.js +6 -6
- package/lib/blocklet/add-cert.js +3 -3
- package/lib/blocklet/component/add.js +2 -2
- package/lib/blocklet/component/delete.js +32 -7
- package/lib/blocklet/component/environment.js +11 -11
- package/lib/blocklet/component/index.js +161 -26
- package/lib/blocklet/component/navigation/navigation-dialog.js +4 -9
- package/lib/blocklet/component/setting.js +2 -2
- package/lib/blocklet/component/space-connector.js +4 -4
- package/lib/blocklet/component/space-selector.js +2 -2
- package/lib/blocklet/component/start.js +108 -0
- package/lib/blocklet/component/store-blocklet-list.js +2 -2
- package/lib/blocklet/config-navigation.js +10 -19
- package/lib/blocklet/configuration.js +7 -7
- package/lib/blocklet/migration.js +4 -4
- package/lib/blocklet/notification/email.js +4 -3
- package/lib/blocklet/oauth/auth0.js +4 -3
- package/lib/blocklet/overview.js +1 -7
- package/lib/blocklet/preferences/app-sk.js +3 -3
- package/lib/blocklet/purchase/component-purchase.js +2 -2
- package/lib/blocklet/router/action/add-domain-alias.js +2 -2
- package/lib/blocklet/router/action/add-rule.js +2 -2
- package/lib/blocklet/router/action/delete-domain-alias.js +2 -2
- package/lib/blocklet/router/action/delete-rule.js +2 -2
- package/lib/blocklet/router/action/update-rule.js +2 -2
- package/lib/blocklet/router/rule-actions.js +3 -0
- package/lib/blocklet/router/rule-list.js +1 -1
- package/lib/blocklet/storage/connect.js +2 -2
- package/lib/blocklet/storage/delete.js +2 -2
- package/lib/blocklet/storage/index.js +4 -4
- package/lib/blocklet/storage/switch-did-spaces.js +3 -3
- package/lib/blocklet/version.js +1 -8
- package/lib/contexts/audit-log.js +2 -2
- package/lib/exchange-passport.js +3 -3
- package/lib/hooks/blocklet.js +4 -4
- package/lib/hooks/use-navigation.js +1 -1
- package/lib/locales/en.js +24 -24
- package/lib/locales/zh.js +44 -44
- package/lib/logs/download.js +2 -2
- package/lib/store/delete.js +2 -2
- package/lib/team/members/index.js +4 -3
- package/lib/team/members/member.js +2 -8
- package/lib/team/members/passport-issuances.js +2 -8
- package/lib/team/members/passports.js +2 -8
- package/lib/team/members/toggle-user-approval.js +2 -2
- package/lib/team/passports/color.js +2 -2
- package/lib/team/passports/detail.js +4 -4
- package/lib/team/passports/index.js +3 -3
- package/lib/team/passports/trusted-factories.js +3 -3
- package/lib/team/passports/trusted-factory.js +3 -3
- package/lib/team/passports/trusted-issuer.js +3 -3
- package/lib/team/passports/trusted-issuers.js +4 -4
- package/lib/util/index.js +8 -13
- package/package.json +14 -15
- package/lib/toast.js +0 -86
package/lib/actions.js
CHANGED
|
@@ -56,7 +56,7 @@ function Actions(_ref) {
|
|
|
56
56
|
"aria-haspopup": "true",
|
|
57
57
|
"data-cy": "actions-menu-icon",
|
|
58
58
|
onClick: onOpen,
|
|
59
|
-
size: "
|
|
59
|
+
size: "small",
|
|
60
60
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MoreHoriz.default, {})
|
|
61
61
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Menu.default, {
|
|
62
62
|
id: "actions-menu",
|
|
@@ -82,13 +82,14 @@ function Actions(_ref) {
|
|
|
82
82
|
return /*#__PURE__*/(0, _react.createElement)(_MenuItem.default, _objectSpread(_objectSpread({}, opts), {}, {
|
|
83
83
|
disabled: disabled,
|
|
84
84
|
dense: true,
|
|
85
|
-
onClick: e => {
|
|
85
|
+
onClick: async e => {
|
|
86
|
+
await _onClick(e);
|
|
86
87
|
onClose();
|
|
87
|
-
_onClick(e);
|
|
88
88
|
}
|
|
89
89
|
// eslint-disable-next-line react/no-array-index-key
|
|
90
90
|
,
|
|
91
|
-
key: index
|
|
91
|
+
key: index,
|
|
92
|
+
"data-cy": "actions-menu-".concat(index)
|
|
92
93
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
93
94
|
style: {
|
|
94
95
|
minWidth: 24,
|
|
@@ -26,10 +26,10 @@ var _context = require("@arcblock/ux/lib/Locale/context");
|
|
|
26
26
|
var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
|
|
27
27
|
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
28
28
|
var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
|
|
29
|
+
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
29
30
|
var _node = require("../../contexts/node");
|
|
30
31
|
var _team = require("../../contexts/team");
|
|
31
32
|
var _util2 = require("../../util");
|
|
32
|
-
var _toast = _interopRequireDefault(require("../../toast"));
|
|
33
33
|
var _config = _interopRequireDefault(require("../../who-can-access/config"));
|
|
34
34
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
35
|
var _templateObject, _templateObject2;
|
|
@@ -160,12 +160,12 @@ function ConfigAccess(_ref) {
|
|
|
160
160
|
whoCanAccess: value
|
|
161
161
|
}
|
|
162
162
|
});
|
|
163
|
-
|
|
163
|
+
_Toast.default.success(t('blocklet.config.access.updatedTip'));
|
|
164
164
|
onClose();
|
|
165
165
|
setLoading(false);
|
|
166
166
|
} catch (err) {
|
|
167
167
|
setLoading(false);
|
|
168
|
-
|
|
168
|
+
_Toast.default.error((0, _util2.formatError)(err));
|
|
169
169
|
}
|
|
170
170
|
};
|
|
171
171
|
const disabled = loading || whoCanAccess === CONFIG_ROLE && !roles.length;
|
package/lib/blocklet/actions.js
CHANGED
|
@@ -28,7 +28,7 @@ var _util = require("@blocklet/meta/lib/util");
|
|
|
28
28
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
29
29
|
var _constant = require("@blocklet/constant");
|
|
30
30
|
var _constant2 = require("@abtnode/constant");
|
|
31
|
-
var
|
|
31
|
+
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
32
32
|
var _util2 = require("../util");
|
|
33
33
|
var _util3 = require("./util");
|
|
34
34
|
var _node = require("../contexts/node");
|
|
@@ -93,6 +93,10 @@ function BlockletActions(_ref) {
|
|
|
93
93
|
await fn(params);
|
|
94
94
|
} else if (action === 'start') {
|
|
95
95
|
var _blocklet$settings;
|
|
96
|
+
if (!(0, _util.hasRunnableComponent)(blocklet)) {
|
|
97
|
+
_Toast.default.error(t('blocklet.noComponent'));
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
96
100
|
if (!inService && !skipSetup && !((_blocklet$settings = blocklet.settings) !== null && _blocklet$settings !== void 0 && _blocklet$settings.initialized)) {
|
|
97
101
|
// 跳转到 setup 流程界面时携带 serverUrl 查询参数
|
|
98
102
|
const serverUrl = (0, _util3.getServerUrl)(node.info);
|
|
@@ -105,10 +109,6 @@ function BlockletActions(_ref) {
|
|
|
105
109
|
});
|
|
106
110
|
return;
|
|
107
111
|
}
|
|
108
|
-
if (!(0, _util.hasRunnableComponent)(blocklet)) {
|
|
109
|
-
_toast.default.error(t('blocklet.noComponent'));
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
112
|
const input = {
|
|
113
113
|
did: blocklet.meta.did
|
|
114
114
|
};
|
|
@@ -130,7 +130,7 @@ function BlockletActions(_ref) {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
if (action === 'reload') {
|
|
133
|
-
|
|
133
|
+
_Toast.default.success(t('blocklet.reloadSuccess'));
|
|
134
134
|
}
|
|
135
135
|
onComplete({
|
|
136
136
|
action,
|
package/lib/blocklet/add-cert.js
CHANGED
|
@@ -12,7 +12,7 @@ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularPr
|
|
|
12
12
|
var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
|
|
13
13
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
14
14
|
var _constant = require("@blocklet/constant");
|
|
15
|
-
var
|
|
15
|
+
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
16
16
|
var _confirm = _interopRequireDefault(require("../confirm"));
|
|
17
17
|
var _node = require("../contexts/node");
|
|
18
18
|
var _blocklet = require("../contexts/blocklet");
|
|
@@ -68,9 +68,9 @@ function Add(props) {
|
|
|
68
68
|
if (cert.domain === domain) {
|
|
69
69
|
setIssuing(false);
|
|
70
70
|
if (type === 'success') {
|
|
71
|
-
|
|
71
|
+
_Toast.default.success("The ".concat(cert.domain, " certificate is issued successfully"));
|
|
72
72
|
} else if (type === 'error') {
|
|
73
|
-
|
|
73
|
+
_Toast.default.error("Failed to issue certificate for ".concat(cert.domain));
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
};
|
|
@@ -33,9 +33,9 @@ var _AnimationWaiter = _interopRequireDefault(require("@arcblock/ux/lib/Animatio
|
|
|
33
33
|
var _launchResultMessage = _interopRequireDefault(require("@blocklet/launcher-layout/lib/launch-result-message"));
|
|
34
34
|
var _util = require("@blocklet/meta/lib/util");
|
|
35
35
|
var _urlPathFriendly = _interopRequireDefault(require("@blocklet/meta/lib/url-path-friendly"));
|
|
36
|
+
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
36
37
|
var _node = require("../../contexts/node");
|
|
37
38
|
var _util2 = require("../../util");
|
|
38
|
-
var _toast = _interopRequireDefault(require("../../toast"));
|
|
39
39
|
var _schemaForm = _interopRequireDefault(require("../../schema-form"));
|
|
40
40
|
var _required = _interopRequireDefault(require("../../form/required"));
|
|
41
41
|
var _purchase = require("../purchase");
|
|
@@ -334,7 +334,7 @@ function AddComponent(_ref2) {
|
|
|
334
334
|
}
|
|
335
335
|
} catch (err) {
|
|
336
336
|
const errMsg = (0, _util2.formatError)(err);
|
|
337
|
-
|
|
337
|
+
_Toast.default.error(errMsg);
|
|
338
338
|
console.error('installComponent error: ', err);
|
|
339
339
|
setInstallErrorResult(errMsg);
|
|
340
340
|
} finally {
|
|
@@ -30,7 +30,10 @@ function DeleteComponent(_ref) {
|
|
|
30
30
|
component,
|
|
31
31
|
remove,
|
|
32
32
|
disabled,
|
|
33
|
-
tip
|
|
33
|
+
tip,
|
|
34
|
+
showConfirm,
|
|
35
|
+
hideBtn,
|
|
36
|
+
onCancel: _onCancel
|
|
34
37
|
} = _ref;
|
|
35
38
|
const {
|
|
36
39
|
t
|
|
@@ -44,9 +47,8 @@ function DeleteComponent(_ref) {
|
|
|
44
47
|
setDeleteSetting(null);
|
|
45
48
|
};
|
|
46
49
|
const componentDisabled = disabled || loading;
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
onClick: () => setDeleteSetting({
|
|
50
|
+
const doShowConfirm = () => {
|
|
51
|
+
setDeleteSetting({
|
|
50
52
|
title: "".concat(t('common.delete'), " ").concat(component.meta.title || component.meta.name),
|
|
51
53
|
// eslint-disable-next-line react/no-unstable-nested-components
|
|
52
54
|
description: (params, setParams) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
|
|
@@ -78,8 +80,25 @@ function DeleteComponent(_ref) {
|
|
|
78
80
|
removeType: 'keepData'
|
|
79
81
|
},
|
|
80
82
|
onConfirm: deleteComponent,
|
|
81
|
-
onCancel: () =>
|
|
82
|
-
|
|
83
|
+
onCancel: () => {
|
|
84
|
+
setDeleteSetting(null);
|
|
85
|
+
_onCancel();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
(0, _react.useEffect)(() => {
|
|
90
|
+
if (showConfirm) {
|
|
91
|
+
doShowConfirm();
|
|
92
|
+
} else {
|
|
93
|
+
setLoading(false);
|
|
94
|
+
setDeleteSetting(null);
|
|
95
|
+
}
|
|
96
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
|
+
}, [showConfirm]);
|
|
98
|
+
const btn = /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledButton, {
|
|
99
|
+
size: "small",
|
|
100
|
+
disabled: componentDisabled,
|
|
101
|
+
onClick: () => doShowConfirm,
|
|
83
102
|
"data-cy": "delete-component-btn",
|
|
84
103
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {
|
|
85
104
|
disabled: componentDisabled
|
|
@@ -92,7 +111,7 @@ function DeleteComponent(_ref) {
|
|
|
92
111
|
})
|
|
93
112
|
});
|
|
94
113
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
95
|
-
children: [btnWithToolTip, deleteSetting && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
|
|
114
|
+
children: [!hideBtn && btnWithToolTip, deleteSetting && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
|
|
96
115
|
title: deleteSetting.title,
|
|
97
116
|
description: deleteSetting.description,
|
|
98
117
|
confirm: deleteSetting.confirm,
|
|
@@ -106,12 +125,18 @@ function DeleteComponent(_ref) {
|
|
|
106
125
|
DeleteComponent.propTypes = {
|
|
107
126
|
component: _propTypes.default.object.isRequired,
|
|
108
127
|
remove: _propTypes.default.func,
|
|
128
|
+
onCancel: _propTypes.default.func,
|
|
109
129
|
disabled: _propTypes.default.bool,
|
|
130
|
+
showConfirm: _propTypes.default.bool,
|
|
131
|
+
hideBtn: _propTypes.default.bool,
|
|
110
132
|
tip: _propTypes.default.string
|
|
111
133
|
};
|
|
112
134
|
DeleteComponent.defaultProps = {
|
|
113
135
|
remove: async () => {},
|
|
114
136
|
disabled: false,
|
|
137
|
+
showConfirm: false,
|
|
138
|
+
hideBtn: false,
|
|
139
|
+
onCancel: () => {},
|
|
115
140
|
tip: ''
|
|
116
141
|
};
|
|
117
142
|
const StyledButton = (0, _styled.default)(_IconButton.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &.Mui-disabled {\n opacity: 0.5;\n }\n"])));
|
|
@@ -13,8 +13,8 @@ var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
|
|
|
13
13
|
var _constant = require("@blocklet/constant");
|
|
14
14
|
var _util = require("@blocklet/meta/lib/util");
|
|
15
15
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
16
|
+
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
16
17
|
var _clickToCopy = _interopRequireDefault(require("../../click-to-copy"));
|
|
17
|
-
var _toast = _interopRequireDefault(require("../../toast"));
|
|
18
18
|
var _node = require("../../contexts/node");
|
|
19
19
|
var _tableIcons = _interopRequireDefault(require("../../table-icons"));
|
|
20
20
|
var _table = _interopRequireDefault(require("../../table"));
|
|
@@ -61,7 +61,7 @@ function ComponentEnvironment(_ref) {
|
|
|
61
61
|
t
|
|
62
62
|
} = (0, _react.useContext)(_context.LocaleContext);
|
|
63
63
|
const dids = [...ancestors.map(x => x.meta.did), blocklet.meta.did];
|
|
64
|
-
const onConfigChanged = () =>
|
|
64
|
+
const onConfigChanged = () => _Toast.default.success(t('blocklet.config.changedTip'));
|
|
65
65
|
const isConfigEditable = x => x.custom;
|
|
66
66
|
if ((0, _util2.isInstalling)(blocklet.status)) {
|
|
67
67
|
return null;
|
|
@@ -71,11 +71,11 @@ function ComponentEnvironment(_ref) {
|
|
|
71
71
|
}
|
|
72
72
|
const onAddConfig = async data => {
|
|
73
73
|
if (!data.key.trim() || !data.value.trim()) {
|
|
74
|
-
|
|
74
|
+
_Toast.default.error(t('blocklet.config.environment.keyValueRequired'));
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
77
|
if (data.key.startsWith('BLOCKLET_') || data.key.startsWith('COMPONENT_')) {
|
|
78
|
-
|
|
78
|
+
_Toast.default.error(t('blocklet.config.environment.invalidKey'));
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
81
|
data.custom = true;
|
|
@@ -92,24 +92,24 @@ function ComponentEnvironment(_ref) {
|
|
|
92
92
|
const onEditConfig = async (newData, oldData) => {
|
|
93
93
|
// only required field can't be empty
|
|
94
94
|
if (newData.required && (!newData.key.trim() || !newData.value.trim())) {
|
|
95
|
-
|
|
95
|
+
_Toast.default.error(t('blocklet.config.environment.keyValueRequired'));
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
98
|
if (newData.key.startsWith('BLOCKLET_') && !_constant.BLOCKLET_CONFIGURABLE_KEY[newData.key]) {
|
|
99
|
-
|
|
99
|
+
_Toast.default.error(t('blocklet.config.environment.invalidKey'));
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
if (newData.key === _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_CLUSTER_SIZE) {
|
|
103
103
|
const errMessage = (0, _util2.isValidClusterSize)(newData);
|
|
104
104
|
if (errMessage) {
|
|
105
|
-
|
|
105
|
+
_Toast.default.error(errMessage);
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
const configs = [newData];
|
|
110
110
|
if (newData.key !== oldData.key) {
|
|
111
111
|
if (!newData.custom) {
|
|
112
|
-
|
|
112
|
+
_Toast.default.error('Only key of custom env can be changed');
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
115
|
configs.push({
|
|
@@ -128,16 +128,16 @@ function ComponentEnvironment(_ref) {
|
|
|
128
128
|
onConfigChanged(result.blocklet);
|
|
129
129
|
}
|
|
130
130
|
} catch (err) {
|
|
131
|
-
|
|
131
|
+
_Toast.default.error((0, _util2.formatError)(err));
|
|
132
132
|
}
|
|
133
133
|
};
|
|
134
134
|
const onDeleteConfig = async data => {
|
|
135
135
|
if (data.required) {
|
|
136
|
-
|
|
136
|
+
_Toast.default.error(t('blocklet.config.environment.deleteForbidden'));
|
|
137
137
|
return;
|
|
138
138
|
}
|
|
139
139
|
if (!data.custom) {
|
|
140
|
-
|
|
140
|
+
_Toast.default.error('Only key of custom env can be changed');
|
|
141
141
|
return;
|
|
142
142
|
}
|
|
143
143
|
const result = await node.api.configBlocklet({
|
|
@@ -26,6 +26,9 @@ var _ArrowForward = _interopRequireDefault(require("@mui/icons-material/ArrowFor
|
|
|
26
26
|
var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
|
|
27
27
|
var _ChevronRight = _interopRequireDefault(require("@mui/icons-material/ChevronRight"));
|
|
28
28
|
var _Checkbox = _interopRequireDefault(require("@mui/material/Checkbox"));
|
|
29
|
+
var _Replay = _interopRequireDefault(require("@mui/icons-material/Replay"));
|
|
30
|
+
var _Autorenew = _interopRequireDefault(require("@mui/icons-material/Autorenew"));
|
|
31
|
+
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
29
32
|
var _react2 = require("@iconify/react");
|
|
30
33
|
var _constant = require("@abtnode/constant");
|
|
31
34
|
var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
|
|
@@ -35,10 +38,10 @@ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
|
35
38
|
var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
|
|
36
39
|
var _util = require("@blocklet/meta/lib/util");
|
|
37
40
|
var _normalizePathPrefix = _interopRequireDefault(require("@abtnode/util/lib/normalize-path-prefix"));
|
|
41
|
+
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
38
42
|
var _deletingBlocklets = require("../../contexts/deleting-blocklets");
|
|
39
43
|
var _didAddress = _interopRequireDefault(require("../../did-address"));
|
|
40
44
|
var _tag = _interopRequireDefault(require("../../tag"));
|
|
41
|
-
var _toast = _interopRequireDefault(require("../../toast"));
|
|
42
45
|
var _blockletSource = _interopRequireDefault(require("../blocklet-source"));
|
|
43
46
|
var _status = _interopRequireDefault(require("../status"));
|
|
44
47
|
var _version = _interopRequireDefault(require("../version"));
|
|
@@ -49,13 +52,15 @@ var _bundleAvatar = _interopRequireDefault(require("../bundle-avatar"));
|
|
|
49
52
|
var _mode = _interopRequireDefault(require("../mode"));
|
|
50
53
|
var _configuration = _interopRequireDefault(require("./configuration"));
|
|
51
54
|
var _delete = _interopRequireDefault(require("./delete"));
|
|
55
|
+
var _start = _interopRequireDefault(require("./start"));
|
|
52
56
|
var _line = _interopRequireDefault(require("./line"));
|
|
53
57
|
var _add = _interopRequireDefault(require("./add"));
|
|
54
58
|
var _addRule = _interopRequireDefault(require("../router/action/add-rule"));
|
|
55
59
|
var _ruleList = _interopRequireDefault(require("../router/rule-list"));
|
|
60
|
+
var _actions = _interopRequireDefault(require("../../actions"));
|
|
56
61
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
57
62
|
const _excluded = ["blocklet", "onUpdate", "getComponentUrl"];
|
|
58
|
-
var _templateObject, _templateObject2;
|
|
63
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
59
64
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
60
65
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
61
66
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -137,6 +142,10 @@ function ComponentItem(_ref) {
|
|
|
137
142
|
ancestors,
|
|
138
143
|
depth,
|
|
139
144
|
onRemove,
|
|
145
|
+
onStart,
|
|
146
|
+
onStop,
|
|
147
|
+
onRestart,
|
|
148
|
+
onReload,
|
|
140
149
|
getComponentUrl,
|
|
141
150
|
app
|
|
142
151
|
} = _ref;
|
|
@@ -145,6 +154,8 @@ function ComponentItem(_ref) {
|
|
|
145
154
|
} = (0, _react.useContext)(_context.LocaleContext);
|
|
146
155
|
const [expand, setExpand] = (0, _react.useState)(true);
|
|
147
156
|
const [componentInfo, setComponentInfo] = (0, _react.useState)();
|
|
157
|
+
const [showDeleteConfirm, setShowDeleteConfirm] = (0, _react.useState)(false);
|
|
158
|
+
const [loading, setLoading] = (0, _react.useState)(false);
|
|
148
159
|
const {
|
|
149
160
|
deletingBlocklets: deletingComponents
|
|
150
161
|
} = (0, _deletingBlocklets.useDeletingBlockletContext)();
|
|
@@ -156,9 +167,6 @@ function ComponentItem(_ref) {
|
|
|
156
167
|
}
|
|
157
168
|
const mountPoint = "/".concat(ancestors.slice(1) // ignore mountPoint of root component
|
|
158
169
|
.map(x => x.mountPoint || '/').join('/'), "/").concat(blocklet.mountPoint || '/').replace(/\/+/g, '/');
|
|
159
|
-
|
|
160
|
-
// hide root's status and only display specific status
|
|
161
|
-
const showStatus = !!ancestors.length && ['downloading', 'deleting', 'starting'].includes(status);
|
|
162
170
|
const canExpand = depth > 0 && blocklet.children.length > 0;
|
|
163
171
|
const expandIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
164
172
|
size: "small",
|
|
@@ -203,7 +211,13 @@ function ComponentItem(_ref) {
|
|
|
203
211
|
status: status,
|
|
204
212
|
source: componentInfo.source
|
|
205
213
|
})
|
|
206
|
-
}, {
|
|
214
|
+
}, blocklet.status === 'running' ? {
|
|
215
|
+
name: t('blocklet.startedAt'),
|
|
216
|
+
value: (0, _util2.formatToDatetime)(blocklet.startedAt)
|
|
217
|
+
} : null, blocklet.status !== 'running' ? {
|
|
218
|
+
name: t('blocklet.stoppedAt'),
|
|
219
|
+
value: (0, _util2.formatToDatetime)(blocklet.stoppedAt)
|
|
220
|
+
} : null, {
|
|
207
221
|
name: t('common.mountPoint'),
|
|
208
222
|
value: mountPoint
|
|
209
223
|
}, {
|
|
@@ -267,7 +281,9 @@ function ComponentItem(_ref) {
|
|
|
267
281
|
});
|
|
268
282
|
}
|
|
269
283
|
}
|
|
270
|
-
|
|
284
|
+
const appInProgress = (0, _util.isInProgress)(root.status);
|
|
285
|
+
const componentInProgress = (0, _util.isInProgress)(blocklet.status);
|
|
286
|
+
return [(depth > 0 || blocklet.meta.group !== 'gateway') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledComponentRow, {
|
|
271
287
|
display: "flex",
|
|
272
288
|
py: 2,
|
|
273
289
|
className: "component-item",
|
|
@@ -293,10 +309,8 @@ function ComponentItem(_ref) {
|
|
|
293
309
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
294
310
|
ml: "16px",
|
|
295
311
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
fontSize: 18
|
|
299
|
-
},
|
|
312
|
+
className: "component-name",
|
|
313
|
+
onClick: () => setComponentInfo(blocklet),
|
|
300
314
|
children: (0, _util.getDisplayName)(blocklet, true)
|
|
301
315
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
302
316
|
display: "flex",
|
|
@@ -309,7 +323,7 @@ function ComponentItem(_ref) {
|
|
|
309
323
|
marginLeft: 4
|
|
310
324
|
},
|
|
311
325
|
mode: blocklet.mode || ''
|
|
312
|
-
}),
|
|
326
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_status.default, {
|
|
313
327
|
style: {
|
|
314
328
|
marginLeft: 4
|
|
315
329
|
},
|
|
@@ -359,6 +373,8 @@ function ComponentItem(_ref) {
|
|
|
359
373
|
})
|
|
360
374
|
})
|
|
361
375
|
}, mountPoint), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
376
|
+
display: "flex",
|
|
377
|
+
alignItems: "center",
|
|
362
378
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
363
379
|
title: t('common.visit'),
|
|
364
380
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
@@ -366,15 +382,10 @@ function ComponentItem(_ref) {
|
|
|
366
382
|
href: href,
|
|
367
383
|
rel: "noopener noreferrer",
|
|
368
384
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
385
|
+
size: "small",
|
|
369
386
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Launch.default, {})
|
|
370
387
|
})
|
|
371
388
|
})
|
|
372
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
373
|
-
title: t('common.overview'),
|
|
374
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
375
|
-
onClick: () => setComponentInfo(blocklet),
|
|
376
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoOutlined.default, {})
|
|
377
|
-
})
|
|
378
389
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_configuration.default, {
|
|
379
390
|
blocklet: blocklet,
|
|
380
391
|
ancestors: ancestors,
|
|
@@ -391,17 +402,53 @@ function ComponentItem(_ref) {
|
|
|
391
402
|
invisible: !(0, _util.getComponentMissingConfigs)(blocklet, ancestors).length,
|
|
392
403
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
393
404
|
onClick: open,
|
|
405
|
+
size: "small",
|
|
394
406
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsOutlined.default, {})
|
|
395
407
|
})
|
|
396
408
|
})
|
|
397
409
|
}, "config");
|
|
398
410
|
}
|
|
399
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
411
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_start.default, {
|
|
400
412
|
blocklet: root,
|
|
401
413
|
component: blocklet,
|
|
402
|
-
|
|
414
|
+
onStart: onStart,
|
|
415
|
+
onStop: onStop,
|
|
403
416
|
disabled: !!deleteDisabledTip,
|
|
404
417
|
tip: deleteDisabledTip
|
|
418
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_actions.default, {
|
|
419
|
+
"data-cy": "component-actions",
|
|
420
|
+
actions: [{
|
|
421
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoOutlined.default, {}),
|
|
422
|
+
text: t('common.detail'),
|
|
423
|
+
onClick: () => {
|
|
424
|
+
setComponentInfo(blocklet);
|
|
425
|
+
}
|
|
426
|
+
}, {
|
|
427
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Replay.default, {}),
|
|
428
|
+
text: t('common.restart'),
|
|
429
|
+
onClick: async () => {
|
|
430
|
+
setLoading(true);
|
|
431
|
+
await onRestart(blocklet);
|
|
432
|
+
setLoading(false);
|
|
433
|
+
},
|
|
434
|
+
disabled: appInProgress || componentInProgress || blocklet.status !== 'running'
|
|
435
|
+
}, {
|
|
436
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Autorenew.default, {}),
|
|
437
|
+
text: t('common.reload'),
|
|
438
|
+
onClick: async () => {
|
|
439
|
+
setLoading(true);
|
|
440
|
+
await onReload(blocklet);
|
|
441
|
+
setLoading(false);
|
|
442
|
+
},
|
|
443
|
+
disabled: loading || appInProgress || componentInProgress || blocklet.status !== 'running'
|
|
444
|
+
}, {
|
|
445
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {}),
|
|
446
|
+
text: t('common.delete'),
|
|
447
|
+
onClick: () => {
|
|
448
|
+
setShowDeleteConfirm(true);
|
|
449
|
+
},
|
|
450
|
+
disabled: appInProgress || componentInProgress
|
|
451
|
+
}]
|
|
405
452
|
})]
|
|
406
453
|
}, "actions")]
|
|
407
454
|
}, "group-not-gateway-box"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_line.default, {
|
|
@@ -413,6 +460,10 @@ function ComponentItem(_ref) {
|
|
|
413
460
|
ancestors: [...ancestors, blocklet],
|
|
414
461
|
depth: depth + 1,
|
|
415
462
|
onRemove: onRemove,
|
|
463
|
+
onStart: onStart,
|
|
464
|
+
onStop: onStop,
|
|
465
|
+
onRestart: onRestart,
|
|
466
|
+
onReload: onReload,
|
|
416
467
|
getComponentUrl: getComponentUrl,
|
|
417
468
|
app: app
|
|
418
469
|
}, "".concat(depth + 1, "-").concat(x.meta.did)))
|
|
@@ -431,13 +482,35 @@ function ComponentItem(_ref) {
|
|
|
431
482
|
children: renderRows(componentRows)
|
|
432
483
|
})]
|
|
433
484
|
}, "dialog-wrapper")
|
|
434
|
-
}, "base-info-dialog")
|
|
485
|
+
}, "base-info-dialog"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.default, {
|
|
486
|
+
blocklet: root,
|
|
487
|
+
component: blocklet,
|
|
488
|
+
remove: async function remove() {
|
|
489
|
+
setLoading(true);
|
|
490
|
+
try {
|
|
491
|
+
await onRemove(...arguments);
|
|
492
|
+
} catch (_unused) {
|
|
493
|
+
// ignore
|
|
494
|
+
}
|
|
495
|
+
setLoading(false);
|
|
496
|
+
setShowDeleteConfirm(false);
|
|
497
|
+
},
|
|
498
|
+
onCancel: () => setShowDeleteConfirm(false),
|
|
499
|
+
disabled: !!deleteDisabledTip,
|
|
500
|
+
tip: deleteDisabledTip,
|
|
501
|
+
hideBtn: true,
|
|
502
|
+
showConfirm: showDeleteConfirm
|
|
503
|
+
})];
|
|
435
504
|
}
|
|
436
505
|
ComponentItem.propTypes = {
|
|
437
506
|
blocklet: _propTypes.default.object.isRequired,
|
|
438
507
|
ancestors: _propTypes.default.array,
|
|
439
508
|
depth: _propTypes.default.number,
|
|
440
509
|
onRemove: _propTypes.default.func,
|
|
510
|
+
onStart: _propTypes.default.func,
|
|
511
|
+
onStop: _propTypes.default.func,
|
|
512
|
+
onRestart: _propTypes.default.func,
|
|
513
|
+
onReload: _propTypes.default.func,
|
|
441
514
|
getComponentUrl: _propTypes.default.func,
|
|
442
515
|
app: _propTypes.default.object
|
|
443
516
|
};
|
|
@@ -445,10 +518,15 @@ ComponentItem.defaultProps = {
|
|
|
445
518
|
ancestors: [],
|
|
446
519
|
depth: 0,
|
|
447
520
|
onRemove: () => {},
|
|
521
|
+
onStart: () => {},
|
|
522
|
+
onStop: () => {},
|
|
523
|
+
onRestart: () => {},
|
|
524
|
+
onReload: () => {},
|
|
448
525
|
getComponentUrl: () => window.location.origin,
|
|
449
526
|
app: null
|
|
450
527
|
};
|
|
451
528
|
const StyledBadge = (0, _styled.default)(_Badge.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .BaseBadge-badge {\n top: ", "px;\n right: ", "px;\n }\n"])), props => props.top * 8 || 6, props => props.right * 8 || 6);
|
|
529
|
+
const StyledComponentRow = (0, _styled.default)(_Box.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .component-name {\n color: #222;\n font-size: 16px;\n cursor: pointer;\n }\n"])));
|
|
452
530
|
function BlockletComponent(_ref4) {
|
|
453
531
|
let {
|
|
454
532
|
blocklet,
|
|
@@ -498,7 +576,7 @@ function BlockletComponent(_ref4) {
|
|
|
498
576
|
})).preUpdateInfo || {};
|
|
499
577
|
setLoading(false);
|
|
500
578
|
if (!updateId) {
|
|
501
|
-
|
|
579
|
+
_Toast.default.info(t('blocklet.component.noUpdate'));
|
|
502
580
|
return;
|
|
503
581
|
}
|
|
504
582
|
const list = [];
|
|
@@ -539,7 +617,7 @@ function BlockletComponent(_ref4) {
|
|
|
539
617
|
});
|
|
540
618
|
} catch (err) {
|
|
541
619
|
setLoading(false);
|
|
542
|
-
|
|
620
|
+
_Toast.default.error((0, _util2.formatError)(err));
|
|
543
621
|
}
|
|
544
622
|
};
|
|
545
623
|
const onConfirmUpdate = async () => {
|
|
@@ -562,7 +640,7 @@ function BlockletComponent(_ref4) {
|
|
|
562
640
|
setShowUpdateDot(null);
|
|
563
641
|
} catch (error) {
|
|
564
642
|
setLoading(false);
|
|
565
|
-
|
|
643
|
+
_Toast.default.error((0, _util2.formatError)(error));
|
|
566
644
|
}
|
|
567
645
|
};
|
|
568
646
|
const removeComponent = async (d, type) => {
|
|
@@ -577,10 +655,63 @@ function BlockletComponent(_ref4) {
|
|
|
577
655
|
});
|
|
578
656
|
await (0, _util2.sleep)(800);
|
|
579
657
|
} catch (err) {
|
|
580
|
-
|
|
658
|
+
_Toast.default.error((0, _util2.formatError)(err));
|
|
581
659
|
removeDeletingDid(d.meta.did);
|
|
582
660
|
}
|
|
583
661
|
};
|
|
662
|
+
const startComponent = async d => {
|
|
663
|
+
try {
|
|
664
|
+
await api.startBlocklet({
|
|
665
|
+
input: {
|
|
666
|
+
did: blocklet.meta.did,
|
|
667
|
+
componentDids: [d.meta.did]
|
|
668
|
+
}
|
|
669
|
+
});
|
|
670
|
+
await (0, _util2.sleep)(800);
|
|
671
|
+
} catch (err) {
|
|
672
|
+
_Toast.default.error((0, _util2.formatError)(err));
|
|
673
|
+
}
|
|
674
|
+
};
|
|
675
|
+
const stopComponent = async d => {
|
|
676
|
+
try {
|
|
677
|
+
await api.stopBlocklet({
|
|
678
|
+
input: {
|
|
679
|
+
did: blocklet.meta.did,
|
|
680
|
+
componentDids: [d.meta.did]
|
|
681
|
+
}
|
|
682
|
+
});
|
|
683
|
+
await (0, _util2.sleep)(800);
|
|
684
|
+
} catch (err) {
|
|
685
|
+
_Toast.default.error((0, _util2.formatError)(err));
|
|
686
|
+
}
|
|
687
|
+
};
|
|
688
|
+
const restartComponent = async d => {
|
|
689
|
+
try {
|
|
690
|
+
await api.restartBlocklet({
|
|
691
|
+
input: {
|
|
692
|
+
did: blocklet.meta.did,
|
|
693
|
+
componentDids: [d.meta.did]
|
|
694
|
+
}
|
|
695
|
+
});
|
|
696
|
+
await (0, _util2.sleep)(800);
|
|
697
|
+
} catch (err) {
|
|
698
|
+
_Toast.default.error((0, _util2.formatError)(err));
|
|
699
|
+
}
|
|
700
|
+
};
|
|
701
|
+
const reloadComponent = async d => {
|
|
702
|
+
try {
|
|
703
|
+
await api.reloadBlocklet({
|
|
704
|
+
input: {
|
|
705
|
+
did: blocklet.meta.did,
|
|
706
|
+
componentDids: [d.meta.did]
|
|
707
|
+
}
|
|
708
|
+
});
|
|
709
|
+
await (0, _util2.sleep)(800);
|
|
710
|
+
_Toast.default.success(t('blocklet.reloadSuccess'));
|
|
711
|
+
} catch (err) {
|
|
712
|
+
_Toast.default.error((0, _util2.formatError)(err));
|
|
713
|
+
}
|
|
714
|
+
};
|
|
584
715
|
const onUpdateChecksChange = (e, groupId) => {
|
|
585
716
|
const {
|
|
586
717
|
checked: newValue
|
|
@@ -697,6 +828,10 @@ function BlockletComponent(_ref4) {
|
|
|
697
828
|
blocklet: blocklet,
|
|
698
829
|
app: blocklet,
|
|
699
830
|
onRemove: removeComponent,
|
|
831
|
+
onStart: startComponent,
|
|
832
|
+
onStop: stopComponent,
|
|
833
|
+
onReload: reloadComponent,
|
|
834
|
+
onRestart: restartComponent,
|
|
700
835
|
getComponentUrl: getComponentUrl
|
|
701
836
|
}, "0-".concat(blocklet.meta.did))
|
|
702
837
|
}, "top-blocklet-".concat(blocklet.meta.did))] : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
@@ -803,4 +938,4 @@ BlockletComponent.defaultProps = {
|
|
|
803
938
|
onUpdate: () => {},
|
|
804
939
|
getComponentUrl: () => window.location.origin
|
|
805
940
|
};
|
|
806
|
-
const Div = _styled.default.div(
|
|
941
|
+
const Div = _styled.default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n .title {\n font-size: 1.2rem;\n font-weight: bold;\n margin-bottom: ", ";\n }\n\n @keyframes showDelay {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n }\n\n .component-item {\n animation: showDelay 0.75s ease 1;\n }\n"])), props => props.theme.spacing(1));
|