@abtnode/ux 1.16.13 → 1.16.14-beta-0c29907f

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.
@@ -294,12 +294,12 @@ function BlockletActions(_ref) {
294
294
  }, true),
295
295
  disabled: inProgress
296
296
  } : null;
297
- const cancelDownloadAction = !inService ? {
297
+ const cancelDownloadAction = {
298
298
  action: 'remove',
299
299
  icon: _icons.default.Remove,
300
300
  name: t('common.cancel'),
301
301
  handler: createHandler('cancelDownload', node.api.cancelDownloadBlocklet, true)
302
- } : null;
302
+ };
303
303
  const missingRequiredConfigs = (0, _util.getAppMissingConfigs)(blocklet);
304
304
  const actions = [{
305
305
  action: 'start',
@@ -19,6 +19,7 @@ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
19
19
  var _Select = _interopRequireDefault(require("@mui/material/Select"));
20
20
  var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
21
21
  var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
22
+ var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
22
23
  var _auditLog = require("../contexts/audit-log");
23
24
  var _node = require("../contexts/node");
24
25
  var _relativeTime = _interopRequireDefault(require("../relative-time"));
@@ -51,6 +52,10 @@ function AuditLog(_ref2) {
51
52
  inService,
52
53
  info
53
54
  } = (0, _node.useNodeContext)();
55
+ const {
56
+ showScope,
57
+ scopeFormatter = x => x
58
+ } = (0, _auditLog.useAuditLogContext)();
54
59
  if (!log.actor.did) {
55
60
  return null;
56
61
  }
@@ -80,17 +85,27 @@ function AuditLog(_ref2) {
80
85
  target: "_blank",
81
86
  children: [log.actor.fullName, log.actor.role ? "(".concat(log.actor.role, ")") : '']
82
87
  }), ' ', "- ", log.action]
83
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
88
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
84
89
  className: "log-content",
85
90
  maxWidth: "lg",
86
91
  color: "textPrimary",
87
92
  component: "div",
88
93
  "data-color-mode": "light",
89
94
  gutterBottom: true,
90
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactMarkdownPreview.default, {
95
+ display: "flex",
96
+ alignItems: "center",
97
+ children: [showScope && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
98
+ to: log.link,
99
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, {
100
+ style: {
101
+ marginRight: 8
102
+ },
103
+ children: scopeFormatter(log.scope)
104
+ })
105
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactMarkdownPreview.default, {
91
106
  source: log.content,
92
107
  linkTarget: "_blank"
93
- })
108
+ })]
94
109
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
95
110
  className: "log-meta",
96
111
  variant: "body2",
@@ -186,11 +201,15 @@ function AuditLogs() {
186
201
  function WrappedAuditLogs(_ref3) {
187
202
  let {
188
203
  scope,
189
- categories
204
+ categories,
205
+ showScope,
206
+ scopeFormatter
190
207
  } = _ref3;
191
208
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_auditLog.AuditLogProvider, {
192
209
  scope: scope,
193
210
  categories: categories,
211
+ showScope: showScope,
212
+ scopeFormatter: scopeFormatter,
194
213
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(AuditLogs, {})
195
214
  });
196
215
  }
@@ -106,7 +106,7 @@ const SpaceConnector = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
106
106
  }]
107
107
  }
108
108
  }).then(() => {
109
- _Toast.default.success(t('storage.spaces.connected', locale));
109
+ _Toast.default.success(t('storage.spaces.connect.succeeded', locale));
110
110
  }).catch(error => {
111
111
  console.error(error);
112
112
  _Toast.default.error(error.message);
@@ -22,6 +22,7 @@ var _ahooks = require("ahooks");
22
22
  var _Dialog = require("@arcblock/ux/lib/Dialog");
23
23
  var _context = require("@arcblock/ux/lib/Locale/context");
24
24
  var _Session = require("@arcblock/did-connect/lib/Session");
25
+ var _noop = _interopRequireDefault(require("lodash/noop"));
25
26
  var _sortableTree = _interopRequireDefault(require("./component/sortable-tree"));
26
27
  var _navigationDialog = _interopRequireDefault(require("./component/navigation/navigation-dialog"));
27
28
  var _navigationActions = _interopRequireDefault(require("./component/navigation/navigation-actions"));
@@ -38,12 +39,25 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
38
39
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
39
40
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // FIXME: @zhanghan 这里还有几处文案没有 i18n
40
41
  const mockSession = {
41
- login: () => {},
42
- logout: () => {},
43
- switch: () => {},
44
- switchDid: () => {},
45
- switchProfile: () => {},
46
- switchPassport: () => {}
42
+ login: _noop.default,
43
+ logout: _noop.default,
44
+ switch: _noop.default,
45
+ switchDid: _noop.default,
46
+ switchProfile: _noop.default,
47
+ switchPassport: _noop.default,
48
+ useDid: () => {
49
+ return {
50
+ walletDid: 'abcdefghijklmnopqrstuvwxyz'
51
+ };
52
+ },
53
+ useOAuth: () => {
54
+ return {
55
+ logoutOAuth: _noop.default,
56
+ bindOAuth: _noop.default,
57
+ configs: {},
58
+ switchOAuthPassport: _noop.default
59
+ };
60
+ }
47
61
  };
48
62
  const navigationTypeMap = {
49
63
  header: 'Header',
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _InfoRow = _interopRequireDefault(require("@arcblock/ux/lib/InfoRow"));
8
+ var _pull = _interopRequireDefault(require("lodash/pull"));
9
+ var _noop = _interopRequireDefault(require("lodash/noop"));
10
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
11
+ var _react = require("react");
12
+ var _context = require("@arcblock/ux/lib/Locale/context");
13
+ var _ahooks = require("ahooks");
14
+ var _Theme = require("@arcblock/ux/lib/Theme");
15
+ var _material = require("@mui/material");
16
+ var _didConnect = require("@arcblock/did-connect");
17
+ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
18
+ var _Stars = _interopRequireDefault(require("@mui/icons-material/Stars"));
19
+ var _blocklet = require("../../contexts/blocklet");
20
+ var _node = require("../../contexts/node");
21
+ var _jsxRuntime = require("react/jsx-runtime");
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+ const FederatedDetailDialog = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
24
+ var _theme$transitions, _theme$transitions$du;
25
+ const {
26
+ t
27
+ } = (0, _react.useContext)(_context.LocaleContext);
28
+ const {
29
+ blocklet
30
+ } = (0, _blocklet.useBlockletContext)();
31
+ const {
32
+ api
33
+ } = (0, _node.useNodeContext)();
34
+ const state = (0, _ahooks.useReactive)({
35
+ mode: 'view',
36
+ show: false,
37
+ data: {},
38
+ callback: _noop.default
39
+ });
40
+ const theme = (0, _Theme.useTheme)();
41
+ const leavingScreen = (theme === null || theme === void 0 ? void 0 : (_theme$transitions = theme.transitions) === null || _theme$transitions === void 0 ? void 0 : (_theme$transitions$du = _theme$transitions.duration) === null || _theme$transitions$du === void 0 ? void 0 : _theme$transitions$du.leavingScreen) || 300;
42
+ const reset = (0, _ahooks.useMemoizedFn)(() => {
43
+ state.mode = 'view';
44
+ state.data = {};
45
+ state.callback = _noop.default;
46
+ }, []);
47
+ const close = (0, _ahooks.useMemoizedFn)(() => {
48
+ state.show = false;
49
+ setTimeout(() => {
50
+ reset();
51
+ }, leavingScreen);
52
+ }, []);
53
+ const open = (0, _ahooks.useMemoizedFn)(data => {
54
+ state.mode = 'view';
55
+ state.show = true;
56
+ state.data = data;
57
+ }, []);
58
+ const approve = (0, _ahooks.useMemoizedFn)(function (data) {
59
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _noop.default;
60
+ state.mode = 'approve';
61
+ state.show = true;
62
+ state.data = data;
63
+ state.callback = callback;
64
+ }, []);
65
+ (0, _react.useImperativeHandle)(ref, () => ({
66
+ open,
67
+ close,
68
+ approve
69
+ }), [open, close, approve]);
70
+ const infoList = (0, _ahooks.useCreation)(() => {
71
+ state.data.migratedFrom = [state.data.appId, state.data.appPid];
72
+ // const keys = Object.keys(omit(state.data, ['isMaster', 'did', 'pk']));
73
+ const keys = ['appName', 'appLogo', 'appId', 'appPid', 'migratedFrom', 'appDescription', 'appUrl', 'version', 'appliedAt', 'status', 'serverId', 'serverVersion'];
74
+ if (state.data.isMaster !== false) {
75
+ (0, _pull.default)(keys, 'appliedAt', 'status');
76
+ }
77
+ return keys.map(key => {
78
+ const name = t("federated.info.".concat(key));
79
+ let value = state.data[key];
80
+ if (key === 'appName') {
81
+ if (state.data.isMaster) {
82
+ value = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
83
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
84
+ component: _Stars.default
85
+ }), value]
86
+ });
87
+ }
88
+ }
89
+ if (['appId', 'appPid', 'serverId'].includes(key)) {
90
+ value = /*#__PURE__*/(0, _jsxRuntime.jsx)(_didConnect.Address, {
91
+ children: value
92
+ });
93
+ }
94
+ if (['appUrl'].includes(key)) {
95
+ value = /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
96
+ component: "a",
97
+ href: value,
98
+ target: "_blank",
99
+ children: value
100
+ });
101
+ }
102
+ if (['appLogo'].includes(key)) {
103
+ value = /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
104
+ src: "".concat(state.data.appUrl, "/").concat(value),
105
+ width: "60",
106
+ height: "60",
107
+ alt: state.data.appName
108
+ });
109
+ }
110
+ if (key === 'status') {
111
+ value = value && t("federated.status.".concat(value));
112
+ }
113
+ if (key === 'migratedFrom') {
114
+ const migratedFrom = state.data.migratedFrom || [];
115
+ const filterDids = migratedFrom.filter(item => ![state.data.appId, state.data.appPid].includes(item));
116
+ value = filterDids.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_didConnect.Address, {
117
+ children: item
118
+ }));
119
+ }
120
+ if ((0, _isEmpty.default)(value)) {
121
+ value = '-';
122
+ }
123
+ return {
124
+ name,
125
+ value
126
+ };
127
+ });
128
+ }, [state.data]);
129
+ const isApprove = state.mode === 'approve';
130
+ const onReject = (0, _ahooks.useMemoizedFn)(async () => {
131
+ await api.auditFederatedLogin({
132
+ input: {
133
+ appId: state.data.appId,
134
+ did: blocklet.meta.did,
135
+ status: 'rejected'
136
+ }
137
+ });
138
+ state === null || state === void 0 ? void 0 : state.callback(false);
139
+ });
140
+ const onApprove = (0, _ahooks.useMemoizedFn)(async () => {
141
+ await api.auditFederatedLogin({
142
+ input: {
143
+ appId: state.data.appId,
144
+ did: blocklet.meta.did,
145
+ status: 'approved'
146
+ }
147
+ });
148
+ close();
149
+ state === null || state === void 0 ? void 0 : state.callback(true);
150
+ });
151
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.default, {
152
+ open: state.show,
153
+ title: isApprove ? t('federated.approveToJoinLogin') : t('federated.siteDetail'),
154
+ onClose: close,
155
+ actions: isApprove ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
156
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, {
157
+ color: "error",
158
+ variant: "contained",
159
+ onClick: onReject,
160
+ children: t('common.reject')
161
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, {
162
+ variant: "contained",
163
+ onClick: onApprove,
164
+ children: t('common.approve')
165
+ })]
166
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, {
167
+ variant: "outlined",
168
+ onClick: close,
169
+ children: t('common.close')
170
+ }),
171
+ children: infoList.map(row => /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
172
+ style: {
173
+ alignItems: 'flex-start'
174
+ },
175
+ valueComponent: "div",
176
+ nameWidth: 180,
177
+ name: row.name,
178
+ children: row.value
179
+ }, row.name))
180
+ });
181
+ });
182
+ var _default = FederatedDetailDialog;
183
+ exports.default = _default;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
8
+ var _context = require("@arcblock/ux/lib/Locale/context");
9
+ var _react = require("react");
10
+ var _ahooks = require("ahooks");
11
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
12
+ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
13
+ var _CodeBlock = _interopRequireDefault(require("@arcblock/ux/lib/CodeBlock"));
14
+ var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
15
+ var _Theme = require("@arcblock/ux/lib/Theme");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ /* eslint-disable react/no-unstable-nested-components */
19
+
20
+ const FederatedInviteDialog = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
21
+ var _theme$transitions, _theme$transitions$du;
22
+ const theme = (0, _Theme.useTheme)();
23
+ const leavingScreen = (theme === null || theme === void 0 ? void 0 : (_theme$transitions = theme.transitions) === null || _theme$transitions === void 0 ? void 0 : (_theme$transitions$du = _theme$transitions.duration) === null || _theme$transitions$du === void 0 ? void 0 : _theme$transitions$du.leavingScreen) || 300;
24
+ const {
25
+ t
26
+ } = (0, _react.useContext)(_context.LocaleContext);
27
+ const state = (0, _ahooks.useReactive)({
28
+ show: false,
29
+ data: {
30
+ link: ''
31
+ }
32
+ });
33
+ const reset = (0, _ahooks.useMemoizedFn)(() => {
34
+ state.data.link = '';
35
+ }, []);
36
+ const close = (0, _ahooks.useMemoizedFn)(() => {
37
+ state.show = false;
38
+ setTimeout(() => {
39
+ reset();
40
+ }, leavingScreen);
41
+ }, []);
42
+ const open = (0, _ahooks.useMemoizedFn)(_ref => {
43
+ let {
44
+ link
45
+ } = _ref;
46
+ state.show = true;
47
+ state.data.link = link;
48
+ }, []);
49
+ (0, _react.useImperativeHandle)(ref, () => ({
50
+ open,
51
+ close
52
+ }), [open, close]);
53
+ const copyAndClose = (0, _ahooks.useMemoizedFn)(() => {
54
+ (0, _copyToClipboard.default)(state.data.link);
55
+ close();
56
+ }, [close]);
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog.default, {
58
+ open: state.show,
59
+ title: t('federated.joinFederatedLogin'),
60
+ onClose: close,
61
+ PaperProps: {
62
+ style: {
63
+ minHeight: 'unset'
64
+ }
65
+ },
66
+ actions: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
67
+ color: "primary",
68
+ autoFocus: true,
69
+ variant: "contained",
70
+ onClick: copyAndClose,
71
+ children: t('common.copyAndClose')
72
+ }),
73
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
74
+ mb: 1,
75
+ children: t('federated.inviteJoinFederatedLoginDescription')
76
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
77
+ sx: {
78
+ '& .copy-button': {
79
+ display: 'none !important'
80
+ }
81
+ },
82
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CodeBlock.default, {
83
+ language: "shell",
84
+ style: {
85
+ marginBottom: 0
86
+ },
87
+ children: state.data.link
88
+ })
89
+ })]
90
+ });
91
+ });
92
+ var _default = FederatedInviteDialog;
93
+ exports.default = _default;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
8
+ var _react = require("react");
9
+ var _context = require("@arcblock/ux/lib/Locale/context");
10
+ var _ahooks = require("ahooks");
11
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
12
+ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
13
+ var _material = require("@mui/material");
14
+ var _Theme = require("@arcblock/ux/lib/Theme");
15
+ var _noop = _interopRequireDefault(require("lodash/noop"));
16
+ var _isUrl = _interopRequireDefault(require("is-url"));
17
+ var _blocklet = require("../../contexts/blocklet");
18
+ var _node = require("../../contexts/node");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+ const FederatedJoinDialog = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
22
+ var _blocklet$meta, _theme$transitions, _theme$transitions$du;
23
+ const {
24
+ t
25
+ } = (0, _react.useContext)(_context.LocaleContext);
26
+ const {
27
+ api
28
+ } = (0, _node.useNodeContext)();
29
+ const {
30
+ blocklet
31
+ } = (0, _blocklet.useBlockletContext)();
32
+ const did = blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta = blocklet.meta) === null || _blocklet$meta === void 0 ? void 0 : _blocklet$meta.did;
33
+ const theme = (0, _Theme.useTheme)();
34
+ const leavingScreen = (theme === null || theme === void 0 ? void 0 : (_theme$transitions = theme.transitions) === null || _theme$transitions === void 0 ? void 0 : (_theme$transitions$du = _theme$transitions.duration) === null || _theme$transitions$du === void 0 ? void 0 : _theme$transitions$du.leavingScreen) || 300;
35
+ const state = (0, _ahooks.useReactive)({
36
+ show: false,
37
+ appUrl: '',
38
+ appUrlError: '',
39
+ callback: _noop.default
40
+ });
41
+ const reset = (0, _ahooks.useMemoizedFn)(() => {
42
+ state.appUrl = '';
43
+ state.appUrlError = '';
44
+ state.callback = _noop.default;
45
+ }, []);
46
+ const close = (0, _ahooks.useMemoizedFn)(() => {
47
+ state.show = false;
48
+ setTimeout(() => {
49
+ reset();
50
+ }, leavingScreen);
51
+ }, []);
52
+ const open = (0, _ahooks.useMemoizedFn)(function () {
53
+ let callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _noop.default;
54
+ state.show = true;
55
+ state.callback = callback;
56
+ }, []);
57
+ (0, _react.useImperativeHandle)(ref, () => ({
58
+ open,
59
+ close
60
+ }), [open, close]);
61
+ const validateAppUrl = (0, _ahooks.useMemoizedFn)(value => {
62
+ if (!value) {
63
+ throw new Error(t('federated.federatedJoinAppUrlRequired'));
64
+ }
65
+ if (!(0, _isUrl.default)(value)) {
66
+ throw new Error(t('federated.federatedJoinAppUrlInvalid'));
67
+ }
68
+ });
69
+ const confirm = (0, _ahooks.useMemoizedFn)(async () => {
70
+ try {
71
+ validateAppUrl(state.appUrl);
72
+ const data = await api.joinFederatedLogin({
73
+ input: {
74
+ did,
75
+ appUrl: state.appUrl
76
+ }
77
+ });
78
+ state.show = false;
79
+ close();
80
+ state === null || state === void 0 ? void 0 : state.callback(data);
81
+ } catch (err) {
82
+ state.appUrlError = err.message;
83
+ }
84
+ }, [close, did]);
85
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog.default, {
86
+ open: state.show,
87
+ title: t('federated.joinFederatedLogin'),
88
+ onClose: close,
89
+ PaperProps: {
90
+ style: {
91
+ minHeight: 'unset'
92
+ }
93
+ },
94
+ actions: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
95
+ color: "primary",
96
+ autoFocus: true,
97
+ variant: "contained",
98
+ onClick: confirm,
99
+ children: t('common.confirm')
100
+ }),
101
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
102
+ mb: 1,
103
+ children: t('federated.joinFederatedLoginDescription')
104
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, {
105
+ fullWidth: true,
106
+ variant: "outlined",
107
+ margin: "dense",
108
+ placeholder: t('federated.federatedJoinAppUrl'),
109
+ label: t('federated.federatedJoinAppUrl'),
110
+ value: state.appUrl,
111
+ error: !!state.appUrlError,
112
+ helperText: state.appUrlError || 'eg: https://www.arcblock.io',
113
+ onChange: e => {
114
+ state.appUrl = e.target.value;
115
+ }
116
+ })]
117
+ });
118
+ });
119
+ var _default = FederatedJoinDialog;
120
+ exports.default = _default;