@abtnode/ux 1.15.17 → 1.16.0-beta-8ee536d7

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 (154) hide show
  1. package/lib/actions.js +111 -0
  2. package/lib/blocklet/access/config-access.js +303 -0
  3. package/lib/blocklet/access/index.js +221 -0
  4. package/lib/blocklet/actions.js +438 -0
  5. package/lib/blocklet/add-cert.js +191 -0
  6. package/lib/blocklet/agreement-app.js +30 -0
  7. package/lib/blocklet/agreement.js +72 -0
  8. package/lib/blocklet/app-avatar.js +74 -0
  9. package/lib/blocklet/audit-logs.js +197 -0
  10. package/lib/blocklet/blocklet-source.js +56 -0
  11. package/lib/blocklet/bundle-avatar.js +80 -0
  12. package/lib/blocklet/component/add.js +1063 -0
  13. package/lib/blocklet/component/configuration.js +124 -0
  14. package/lib/blocklet/component/delete.js +117 -0
  15. package/lib/blocklet/component/environment.js +289 -0
  16. package/lib/blocklet/component/expiration.js +53 -0
  17. package/lib/blocklet/component/index.js +804 -0
  18. package/lib/blocklet/component/line.js +28 -0
  19. package/lib/blocklet/component/navigation/locale-tabs.js +218 -0
  20. package/lib/blocklet/component/navigation/navigation-actions.js +120 -0
  21. package/lib/blocklet/component/navigation/navigation-dialog.js +620 -0
  22. package/lib/blocklet/component/navigation/navigation-preview.js +102 -0
  23. package/lib/blocklet/component/navigation/simple-select.js +131 -0
  24. package/lib/blocklet/component/select-store.js +153 -0
  25. package/lib/blocklet/component/setting.js +151 -0
  26. package/lib/blocklet/component/sortable-tree.js +138 -0
  27. package/lib/blocklet/component/space-gateway-selector.js +174 -0
  28. package/lib/blocklet/component/store-blocklet-list.js +205 -0
  29. package/lib/blocklet/config-navigation.js +344 -0
  30. package/lib/blocklet/configuration.js +574 -0
  31. package/lib/blocklet/disk-info.js +91 -0
  32. package/lib/blocklet/icons.js +26 -0
  33. package/lib/blocklet/install-from-url.js +347 -0
  34. package/lib/blocklet/log.js +62 -0
  35. package/lib/blocklet/migration.js +153 -0
  36. package/lib/blocklet/mode.js +35 -0
  37. package/lib/blocklet/monitor.js +186 -0
  38. package/lib/blocklet/overview.js +236 -0
  39. package/lib/blocklet/preferences/app-sk.js +131 -0
  40. package/lib/blocklet/preferences/index.js +238 -0
  41. package/lib/blocklet/preferences/wallet-type.js +107 -0
  42. package/lib/blocklet/purchase/common.js +103 -0
  43. package/lib/blocklet/purchase/component-purchase.js +253 -0
  44. package/lib/blocklet/purchase/index.js +13 -0
  45. package/lib/blocklet/router/action/add-domain-alias.js +173 -0
  46. package/lib/blocklet/router/action/add-rule.js +204 -0
  47. package/lib/blocklet/router/action/config-routing-rule.js +129 -0
  48. package/lib/blocklet/router/action/delete-domain-alias.js +107 -0
  49. package/lib/blocklet/router/action/delete-rule.js +114 -0
  50. package/lib/blocklet/router/action/update-rule.js +203 -0
  51. package/lib/blocklet/router/domain-actions.js +71 -0
  52. package/lib/blocklet/router/domain-status.js +96 -0
  53. package/lib/blocklet/router/rule-actions.js +77 -0
  54. package/lib/blocklet/router/rule-list.js +181 -0
  55. package/lib/blocklet/router/util.js +146 -0
  56. package/lib/blocklet/runtime-info.js +87 -0
  57. package/lib/blocklet/status.js +105 -0
  58. package/lib/blocklet/storage.js +322 -0
  59. package/lib/blocklet/types.js +25 -0
  60. package/lib/blocklet/util.js +233 -0
  61. package/lib/blocklet/version.js +156 -0
  62. package/lib/card-selector.js +109 -0
  63. package/lib/certificate.js +110 -0
  64. package/lib/click-to-copy.js +38 -0
  65. package/lib/confirm.js +149 -0
  66. package/lib/contexts/audit-log.js +141 -0
  67. package/lib/contexts/blocklet.js +19 -0
  68. package/lib/contexts/deleting-blocklets.js +78 -0
  69. package/lib/contexts/node.js +30 -0
  70. package/lib/contexts/session.js +20 -0
  71. package/lib/contexts/team.js +19 -0
  72. package/lib/delete-confirm.js +127 -0
  73. package/lib/did-address.js +77 -0
  74. package/lib/dot.js +18 -0
  75. package/lib/form/form-text-input.js +266 -0
  76. package/lib/form/form-wrapper.js +13 -0
  77. package/lib/form/required.js +13 -0
  78. package/lib/hooks/blocklet.js +231 -0
  79. package/lib/hooks/mobile-width.js +19 -0
  80. package/lib/hooks/url-evaluation.js +168 -0
  81. package/lib/hooks/use-app-logo.js +25 -0
  82. package/lib/hooks/use-bundle-logo.js +36 -0
  83. package/lib/hooks/use-navigation.js +355 -0
  84. package/lib/hooks/use-passport-id.js +21 -0
  85. package/lib/hooks/use-subscription.js +28 -0
  86. package/lib/icons/long-arrow.svg +5 -0
  87. package/lib/index.js +0 -3
  88. package/lib/invitation/invitation-app.js +51 -0
  89. package/lib/invitation/invitation-login.js +47 -0
  90. package/lib/invitation/invitation-passport.js +130 -0
  91. package/lib/invitation/invitation-receive.js +108 -0
  92. package/lib/invitation/invitation-success.js +82 -0
  93. package/lib/invitation/invitation-user.js +79 -0
  94. package/lib/invitation/invitation.js +80 -0
  95. package/lib/issue-passport.js +84 -84
  96. package/lib/launch-blocklet/content-layout.js +33 -0
  97. package/lib/launch-blocklet/page-header.js +38 -0
  98. package/lib/layout/addon.js +100 -0
  99. package/lib/layout/feedback.js +55 -0
  100. package/lib/locales/en.js +1221 -10
  101. package/lib/locales/index.js +3 -4
  102. package/lib/locales/zh.js +1232 -15
  103. package/lib/logs/clock.js +19 -0
  104. package/lib/logs/download.js +139 -0
  105. package/lib/logs/log-terminal.js +183 -0
  106. package/lib/lost-passport.js +207 -192
  107. package/lib/monitor/card.js +73 -0
  108. package/lib/monitor/cpu.js +109 -0
  109. package/lib/monitor/disk.js +122 -0
  110. package/lib/monitor/memory.js +144 -0
  111. package/lib/nav-logo.js +120 -0
  112. package/lib/passport-tag.js +43 -0
  113. package/lib/permission.js +70 -0
  114. package/lib/relative-time.js +61 -0
  115. package/lib/schema-form/color-input.js +105 -0
  116. package/lib/schema-form/common-prop-types.js +21 -0
  117. package/lib/schema-form/index.js +229 -0
  118. package/lib/schema-form/passport-input.js +66 -0
  119. package/lib/schema-form/text-input.js +72 -0
  120. package/lib/store/add.js +185 -0
  121. package/lib/store/delete.js +102 -0
  122. package/lib/store/item.js +84 -0
  123. package/lib/table-icons.js +42 -0
  124. package/lib/table.js +13 -0
  125. package/lib/tag.js +37 -0
  126. package/lib/team/members/actions.js +99 -0
  127. package/lib/team/members/index.js +503 -0
  128. package/lib/team/members/invitations.js +196 -0
  129. package/lib/team/members/invite-member.js +212 -0
  130. package/lib/team/members/issue-passport.js +155 -0
  131. package/lib/team/members/member.js +300 -0
  132. package/lib/team/members/passport-issuances.js +154 -0
  133. package/lib/team/members/passports.js +336 -0
  134. package/lib/team/members/toggle-user-approval.js +128 -0
  135. package/lib/team/members/transfer-node.js +262 -0
  136. package/lib/team/members/util.js +20 -0
  137. package/lib/team/passports/color.js +132 -0
  138. package/lib/team/passports/detail.js +271 -0
  139. package/lib/team/passports/index.js +233 -0
  140. package/lib/team/passports/mutate-role.js +204 -0
  141. package/lib/team/passports/trusted-issuer.js +297 -0
  142. package/lib/team/passports/trusted-issuers.js +240 -0
  143. package/lib/team/search-input.js +38 -0
  144. package/lib/team/styles/dialog.js +13 -0
  145. package/lib/team/styles/list-header.js +13 -0
  146. package/lib/toast.js +86 -0
  147. package/lib/util/api.js +21 -0
  148. package/lib/util/constants.js +10 -0
  149. package/lib/util/index.js +703 -0
  150. package/lib/util/locales.js +28 -0
  151. package/lib/util/mode.js +11 -0
  152. package/lib/who-can-access/config.js +46 -0
  153. package/lib/wrap-locale.js +12 -13
  154. package/package.json +71 -17
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = PassportList;
7
+ var _react = require("react");
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var _Add = _interopRequireDefault(require("@mui/icons-material/Add"));
10
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
11
+ var _context = require("@arcblock/ux/lib/Locale/context");
12
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
13
+ var _SplitButton = _interopRequireDefault(require("@arcblock/ux/lib/SplitButton"));
14
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
15
+ var _EditIcon = _interopRequireDefault(require("@arcblock/icons/lib/EditIcon"));
16
+ var _LockIcon = _interopRequireDefault(require("@arcblock/icons/lib/LockIcon"));
17
+ var _ExternalIssuerIcon = _interopRequireDefault(require("@arcblock/icons/lib/ExternalIssuerIcon"));
18
+ var _createPassportSvg = _interopRequireDefault(require("@abtnode/auth/lib/util/create-passport-svg"));
19
+ var _toast = _interopRequireDefault(require("../../toast"));
20
+ var _node = require("../../contexts/node");
21
+ var _team = require("../../contexts/team");
22
+ var _util = require("../../util");
23
+ var _permission = _interopRequireDefault(require("../../permission"));
24
+ var _searchInput = _interopRequireDefault(require("../search-input"));
25
+ var _listHeader = _interopRequireDefault(require("../styles/list-header"));
26
+ var _detail = _interopRequireDefault(require("./detail"));
27
+ var _color = _interopRequireDefault(require("./color"));
28
+ var _mutateRole = _interopRequireDefault(require("./mutate-role"));
29
+ var _trustedIssuers = _interopRequireDefault(require("./trusted-issuers"));
30
+ var _jsxRuntime = require("react/jsx-runtime");
31
+ var _templateObject;
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
34
+ function PassportList() {
35
+ const {
36
+ t
37
+ } = (0, _react.useContext)(_context.LocaleContext);
38
+ const {
39
+ api,
40
+ inService
41
+ } = (0, _node.useNodeContext)();
42
+ const {
43
+ roles,
44
+ teamDid,
45
+ teamIssuerDid,
46
+ teamName,
47
+ refresh: refreshTeam,
48
+ enablePassportIssuance,
49
+ passportColor,
50
+ isNodeTeam
51
+ } = (0, _team.useTeamContext)();
52
+ const [showCreate, setShowCreate] = (0, _react.useState)(false);
53
+ const [updateForm, setUpdateForm] = (0, _react.useState)(false);
54
+ const [showColor, setShowColor] = (0, _react.useState)(false);
55
+ const [showTrustedIssuers, setShowTrustedIssuers] = (0, _react.useState)(null);
56
+ const [search, setSearch] = (0, _react.useState)('');
57
+ const [loading, setLoading] = (0, _react.useState)(false);
58
+ const toggleShowIssue = async () => {
59
+ if (loading) {
60
+ return;
61
+ }
62
+ setLoading(true);
63
+ try {
64
+ await api.configPassportIssuance({
65
+ input: {
66
+ teamDid,
67
+ enable: !enablePassportIssuance
68
+ }
69
+ });
70
+ refreshTeam();
71
+ await (0, _util.sleep)(800);
72
+ _toast.default.success(t('common.configSuccess'));
73
+ setLoading(false);
74
+ } catch (error) {
75
+ _toast.default.error(error.message);
76
+ setLoading(false);
77
+ }
78
+ };
79
+ const filteredRoles = roles.filter(x => !search || x.title.includes(search) || x.name.includes(search));
80
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, {
81
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_listHeader.default, {
82
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
83
+ className: "left",
84
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_searchInput.default, {
85
+ placeholder: t('team.passport.search'),
86
+ value: search,
87
+ onChange: e => setSearch(e.target.value)
88
+ })
89
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
90
+ className: "right",
91
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_permission.default, {
92
+ permission: inService ? '' : 'mutate_team',
93
+ role: inService ? _util.BlockletAdminRoles : [],
94
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SplitButton.default, {
95
+ variant: "outlined",
96
+ menuButtonProps: {
97
+ 'data-cy': 'trusted-issuers-more'
98
+ },
99
+ menu: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
100
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SplitButton.default.Item, {
101
+ "data-cy": "config-show-issue-passport",
102
+ onClick: () => {
103
+ toggleShowIssue();
104
+ },
105
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
106
+ display: "flex",
107
+ alignItems: "center",
108
+ children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
109
+ size: 16,
110
+ style: {
111
+ marginRight: 8
112
+ }
113
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
114
+ children: [enablePassportIssuance ? t('team.passport.disableIssuance') : t('team.passport.enableIssuance'), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
115
+ fontSize: 12,
116
+ color: "#888",
117
+ children: enablePassportIssuance ? t('team.passport.disableIssuanceTip') : t('team.passport.enableIssuanceTip')
118
+ })]
119
+ })]
120
+ })
121
+ }), !isNodeTeam && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SplitButton.default.Item, {
122
+ onClick: () => setShowColor(true),
123
+ "data-cy": "config-passport-color",
124
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
125
+ children: t('team.passport.configColor')
126
+ })
127
+ })]
128
+ }),
129
+ children: () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
130
+ variant: "outlined",
131
+ "data-cy": "config-trusted-issuers",
132
+ onClick: () => {
133
+ setShowTrustedIssuers(true);
134
+ },
135
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ExternalIssuerIcon.default, {
136
+ style: {
137
+ fontSize: 16,
138
+ marginRight: 4
139
+ }
140
+ }), t('team.passport.trustedPassportIssuers')]
141
+ })
142
+ }), !isNodeTeam && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
143
+ style: {
144
+ marginLeft: 16
145
+ },
146
+ variant: "contained",
147
+ edge: "end",
148
+ color: "primary",
149
+ "data-cy": "create-role",
150
+ onClick: () => setShowCreate(true),
151
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
152
+ style: {
153
+ fontSize: 16,
154
+ marginRight: 4
155
+ }
156
+ }), t('team.add')]
157
+ })]
158
+ })
159
+ })]
160
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
161
+ mt: 3
162
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
163
+ className: "list",
164
+ children: filteredRoles.map(role => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
165
+ "data-cy": "passport-".concat(role.name),
166
+ className: "item",
167
+ display: "flex",
168
+ alignItems: "center",
169
+ onClick: () => setUpdateForm(role),
170
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
171
+ display: "flex",
172
+ alignItems: "center",
173
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
174
+ style: {
175
+ width: 120
176
+ },
177
+ alt: "",
178
+ src: (0, _createPassportSvg.default)({
179
+ title: role.title,
180
+ issuer: teamName,
181
+ issuerDid: teamIssuerDid,
182
+ ownerName: 'Your Name',
183
+ isDataUrl: true,
184
+ preferredColor: passportColor
185
+ })
186
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
187
+ ml: 3,
188
+ className: "title",
189
+ children: role.title
190
+ })]
191
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
192
+ className: "description",
193
+ children: role.description
194
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {
195
+ permission: inService ? '' : 'mutate_team',
196
+ role: inService ? _util.BlockletAdminRoles : [],
197
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
198
+ className: "action",
199
+ children: (0, _util.isProtectedRole)(role.name) ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LockIcon.default, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditIcon.default, {})
200
+ })
201
+ })]
202
+ }, role.name))
203
+ }), showCreate && /*#__PURE__*/(0, _jsxRuntime.jsx)(_mutateRole.default, {
204
+ teamDid: teamDid,
205
+ onCancel: () => setShowCreate(false),
206
+ onSuccess: () => {
207
+ setShowCreate(false);
208
+ refreshTeam();
209
+ }
210
+ }), updateForm && /*#__PURE__*/(0, _jsxRuntime.jsx)(_detail.default, {
211
+ onCancel: () => setUpdateForm(null),
212
+ onSuccess: () => {
213
+ setUpdateForm(null);
214
+ refreshTeam();
215
+ },
216
+ onDelete: () => {
217
+ setUpdateForm(null);
218
+ refreshTeam();
219
+ },
220
+ mode: "update",
221
+ roleName: updateForm.name,
222
+ item: updateForm
223
+ }), showTrustedIssuers && /*#__PURE__*/(0, _jsxRuntime.jsx)(_trustedIssuers.default, {
224
+ onCancel: () => setShowTrustedIssuers(false)
225
+ }), showColor && /*#__PURE__*/(0, _jsxRuntime.jsx)(_color.default, {
226
+ onCancel: () => setShowColor(null),
227
+ onSuccess: () => setShowColor(null)
228
+ })]
229
+ });
230
+ }
231
+ const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .list {\n .item {\n padding: 12px;\n margin: 12px -12px;\n cursor: pointer;\n transition: box-shadow 0.4s;\n &:hover {\n box-shadow: 0 0 10px 4px rgba(0, 0, 0, 0.1);\n }\n }\n\n .title {\n font-weight: 400;\n font-size: 18px;\n width: 80px;\n line-height: 21px;\n color: #222222;\n }\n\n .description {\n flex: 1;\n margin-left: 64px;\n color: #999999;\n }\n\n .action {\n color: #bfbfbf;\n fill: #bfbfbf;\n }\n }\n"])));
232
+ PassportList.propTypes = {};
233
+ PassportList.defaultProps = {};
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = MutateRole;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _md = _interopRequireDefault(require("md5"));
10
+ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
11
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
12
+ var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
13
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
14
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
15
+ var _context = require("@arcblock/ux/lib/Locale/context");
16
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
17
+ var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
18
+ var _node = require("../../contexts/node");
19
+ var _util = require("../../util");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ function MutateRole(_ref) {
23
+ let {
24
+ teamDid,
25
+ onCancel,
26
+ onSuccess,
27
+ onError,
28
+ mode,
29
+ item
30
+ } = _ref;
31
+ const {
32
+ api
33
+ } = (0, _node.useNodeContext)();
34
+ const [loading, setLoading] = (0, _react.useState)(false);
35
+ const [error, setError] = (0, _react.useState)('');
36
+ const {
37
+ t
38
+ } = (0, _context.useLocaleContext)();
39
+ const [title, setTitle] = (0, _react.useState)(item.title || '');
40
+ const [description, setDescription] = (0, _react.useState)(item.description || '');
41
+ const onCreate = async () => {
42
+ const _title = title.trim();
43
+ if (!_title) {
44
+ setError(t('team.passport.error.titleEmpty'));
45
+ return;
46
+ }
47
+ if (_title.length > 64) {
48
+ setError(t('team.passport.error.titleTooLong', {
49
+ length: 64
50
+ }));
51
+ return;
52
+ }
53
+ const desc = description.replace(/\n/g, ' ');
54
+ if (!desc) {
55
+ setError(t('team.passport.error.descriptionEmpty'));
56
+ return;
57
+ }
58
+ const name = mode === 'create' ? (0, _md.default)(_title) : item.name;
59
+ setError(null);
60
+ setLoading(true);
61
+ try {
62
+ if (mode === 'create') {
63
+ await api.createRole({
64
+ input: {
65
+ teamDid,
66
+ name,
67
+ title: _title,
68
+ description: desc
69
+ }
70
+ });
71
+ } else {
72
+ await api.updateRole({
73
+ input: {
74
+ teamDid,
75
+ role: {
76
+ name,
77
+ title: _title,
78
+ description: desc
79
+ }
80
+ }
81
+ });
82
+ }
83
+ onSuccess();
84
+ } catch (err) {
85
+ const errMsg = (0, _util.formatError)(err);
86
+ setError(errMsg);
87
+ onError(err);
88
+ } finally {
89
+ setLoading(false);
90
+ }
91
+ };
92
+ const body = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
93
+ children: [mode === 'update' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
94
+ component: "div",
95
+ style: {
96
+ paddingTop: 24
97
+ },
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
99
+ label: "ID",
100
+ autoComplete: "off",
101
+ variant: "outlined",
102
+ name: "url",
103
+ "data-cy": "mutate-role-input-name",
104
+ fullWidth: true,
105
+ autoFocus: true,
106
+ value: item.name,
107
+ disabled: true
108
+ })
109
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
110
+ component: "div",
111
+ style: {
112
+ marginTop: 24
113
+ },
114
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
115
+ label: t('common.title'),
116
+ autoComplete: "off",
117
+ variant: "outlined",
118
+ name: "title",
119
+ "data-cy": "mutate-role-input-title",
120
+ fullWidth: true,
121
+ autoFocus: true,
122
+ value: title,
123
+ onChange: e => {
124
+ setError(null);
125
+ setTitle(e.target.value);
126
+ },
127
+ disabled: mode === 'update' || loading,
128
+ helperText: t('team.passport.create.titleTip')
129
+ })
130
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
131
+ component: "div",
132
+ style: {
133
+ marginTop: 24,
134
+ marginBottom: 24
135
+ },
136
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
137
+ label: t('common.description'),
138
+ autoComplete: "off",
139
+ variant: "outlined",
140
+ name: "description",
141
+ "data-cy": "mutate-role-input-description",
142
+ fullWidth: true,
143
+ autoFocus: true,
144
+ value: description,
145
+ onChange: e => {
146
+ setError(null);
147
+ setDescription(e.target.value);
148
+ },
149
+ disabled: loading,
150
+ multiline: true,
151
+ rows: 3
152
+ })
153
+ })]
154
+ });
155
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog.default, {
156
+ title: mode === 'create' ? t('team.passport.create.title') : '',
157
+ fullWidth: true,
158
+ open: true,
159
+ onClose: onCancel,
160
+ showCloseButton: false,
161
+ actions: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
162
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
163
+ onClick: onCancel,
164
+ color: "inherit",
165
+ children: t('common.cancel')
166
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
167
+ "data-cy": "mutate-role-confirm",
168
+ onClick: onCreate,
169
+ color: "primary",
170
+ disabled: loading,
171
+ variant: "contained",
172
+ autoFocus: true,
173
+ children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
174
+ size: 16
175
+ }), mode === 'create' ? t('common.create') : t('common.update')]
176
+ })]
177
+ }),
178
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContentText.default, {
179
+ component: "div",
180
+ children: body
181
+ }), !!error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
182
+ type: "error",
183
+ variant: "icon",
184
+ style: {
185
+ width: '100%',
186
+ margin: 0
187
+ },
188
+ children: error
189
+ })]
190
+ });
191
+ }
192
+ MutateRole.propTypes = {
193
+ teamDid: _propTypes.default.string.isRequired,
194
+ onCancel: _propTypes.default.func.isRequired,
195
+ onSuccess: _propTypes.default.func.isRequired,
196
+ onError: _propTypes.default.func,
197
+ mode: _propTypes.default.oneOf(['create', 'update']),
198
+ item: _propTypes.default.object
199
+ };
200
+ MutateRole.defaultProps = {
201
+ onError: () => {},
202
+ mode: 'create',
203
+ item: {}
204
+ };