@abtnode/ux 1.16.0-beta-58020de5 → 1.16.0-beta-b741bcb3

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.
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = BlockletMigration;
7
- var _react = require("react");
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
9
  var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
10
10
  var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
@@ -17,8 +17,11 @@ var _blocklet = require("../contexts/blocklet");
17
17
  var _session = require("../contexts/session");
18
18
  var _toast = _interopRequireDefault(require("../toast"));
19
19
  var _util2 = require("../util");
20
+ var _util3 = require("./util");
20
21
  var _jsxRuntime = require("react/jsx-runtime");
21
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
25
  const findDuplicate = blocklet => {
23
26
  const map = {};
24
27
  let duplicate = null;
@@ -137,6 +140,7 @@ function BlockletMigration() {
137
140
  onSuccess: onSuccess,
138
141
  extraParams: {
139
142
  did: blocklet.meta.did,
143
+ wt: (0, _util3.getWalletType)(blocklet, true),
140
144
  title: (0, _util.getDisplayName)(blocklet)
141
145
  },
142
146
  messages: {
@@ -231,8 +231,29 @@ const fixBlocklet = async function fixBlocklet(blocklet) {
231
231
  blocklet.capabilities = getAppCapabilities(blocklet);
232
232
  };
233
233
  exports.fixBlocklet = fixBlocklet;
234
- const getWalletType = meta => {
235
- const type = (meta.environments || []).find(x => x.name === 'BLOCKLET_WALLET_TYPE');
236
- return (type === null || type === void 0 ? void 0 : type.default) || 'default';
234
+ const DEFAULT_WALLET_TYPE = 'default';
235
+ const getWalletType = function getWalletType(raw) {
236
+ let fromState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
237
+ let item;
238
+
239
+ // from state: migrating
240
+ if (fromState) {
241
+ item = (raw.configs || []).find(x => x.key === 'BLOCKLET_WALLET_TYPE');
242
+ if (item && item.value) {
243
+ return item.value;
244
+ }
245
+ item = (raw.environments || []).find(x => x.key === 'BLOCKLET_WALLET_TYPE');
246
+ if (item && item.value) {
247
+ return item.value;
248
+ }
249
+ return DEFAULT_WALLET_TYPE;
250
+ }
251
+
252
+ // from meta: installing
253
+ item = (raw.environments || []).find(x => x.name === 'BLOCKLET_WALLET_TYPE');
254
+ if (item && item.default) {
255
+ return item.default;
256
+ }
257
+ return DEFAULT_WALLET_TYPE;
237
258
  };
238
259
  exports.getWalletType = getWalletType;
package/lib/locales/en.js CHANGED
@@ -1107,8 +1107,8 @@ module.exports = {
1107
1107
  confirmInstall: 'Confirm Installation',
1108
1108
  dialog: {
1109
1109
  title: 'Authorization Required',
1110
- freeDescription: 'You need to present Blocklet Server Ownership NFT or Blocklet Server Passport to launch application',
1111
- freeServerlessDescription: 'Please provide serverless NFT',
1110
+ freeDescription: 'You need to present Blocklet Space NFT or Blocklet Server Passport to launch application',
1111
+ freeServerlessDescription: 'Please provide Blocklet Space NFT',
1112
1112
  nonFreeDescription: 'You need to present application purchase NFT and Blocklet Server NFT to launch application',
1113
1113
  confirm: 'Confirm on your DID Wallet',
1114
1114
  success: 'Authorization Successfully',
@@ -1255,6 +1255,9 @@ module.exports = {
1255
1255
  saveSuccess: 'Save successfully',
1256
1256
  saveFailed: 'Save failed',
1257
1257
  issued: 'Issued',
1258
+ thirdPartyLogin: 'Third party login',
1259
+ alreadyBindOAuth: 'Already bind third party login',
1260
+ alreadyBindWallet: 'Already bind DID Wallet',
1258
1261
  auth0: {
1259
1262
  enable: 'Enable Auth0 login',
1260
1263
  domain: 'Domain',
package/lib/locales/zh.js CHANGED
@@ -1113,8 +1113,8 @@ module.exports = {
1113
1113
  confirmInstall: '确认安装',
1114
1114
  dialog: {
1115
1115
  title: '需要您的授权',
1116
- freeDescription: '你需要提供节点所有权 NFT 或节点通行证凭据来启动应用',
1117
- freeServerlessDescription: '请提供无服务 NFT',
1116
+ freeDescription: '你需要提供应用空间 NFT 或节点通行证凭据来启动应用',
1117
+ freeServerlessDescription: '请提应用空间 NFT',
1118
1118
  nonFreeDescription: '你需要提供应用购买凭证和节点通行证来启动应用',
1119
1119
  confirm: '在您的 DID 钱包上确认',
1120
1120
  success: '授权成功',
@@ -1260,6 +1260,9 @@ module.exports = {
1260
1260
  saveSuccess: '保存成功',
1261
1261
  saveFailed: '保存失败',
1262
1262
  issued: '颁发',
1263
+ thirdPartyLogin: '第三方登录',
1264
+ alreadyBindOAuth: '已绑定第三方登录',
1265
+ alreadyBindWallet: '已绑定 DID Wallet',
1263
1266
  auth0: {
1264
1267
  enable: '是否开启 Auth0 登录',
1265
1268
  domain: 'Domain',
@@ -12,12 +12,15 @@ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
12
12
  var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
13
13
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
14
14
  var _Avatar = _interopRequireDefault(require("@mui/material/Avatar"));
15
+ var _Avatar2 = _interopRequireDefault(require("@arcblock/did-connect/lib/Avatar"));
15
16
  var _Tabs = _interopRequireDefault(require("@arcblock/ux/lib/Tabs"));
16
17
  var _InfoRow = _interopRequireDefault(require("@arcblock/ux/lib/InfoRow"));
17
18
  var _context = require("@arcblock/ux/lib/Locale/context");
18
19
  var _Address = _interopRequireDefault(require("@arcblock/did-connect/lib/Address"));
19
20
  var _ForbidLoginIcon = _interopRequireDefault(require("@arcblock/icons/lib/ForbidLoginIcon"));
20
21
  var _AllowLoginIcon = _interopRequireDefault(require("@arcblock/icons/lib/AllowLoginIcon"));
22
+ var _reactUse = require("react-use");
23
+ var _ahooks = require("ahooks");
21
24
  var _constant = require("@abtnode/constant");
22
25
  var _permission = _interopRequireDefault(require("../../permission"));
23
26
  var _node = require("../../contexts/node");
@@ -29,14 +32,114 @@ var _toggleUserApproval = _interopRequireDefault(require("./toggle-user-approval
29
32
  var _util2 = require("./util");
30
33
  var _jsxRuntime = require("react/jsx-runtime");
31
34
  var _templateObject, _templateObject2, _templateObject3;
35
+ const _excluded = ["name"];
32
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
37
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
34
- function Member(_ref) {
38
+ 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; }
39
+ 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; }
40
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
42
+ 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); }
43
+ 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; }
44
+ 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; }
45
+ function LinkUser(_ref) {
46
+ let {
47
+ name
48
+ } = _ref,
49
+ rest = _objectWithoutProperties(_ref, _excluded);
50
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, _objectSpread(_objectSpread({}, rest), {}, {
51
+ sx: {
52
+ color: 'primary.main',
53
+ '&:hover': {
54
+ textDecoration: 'underline'
55
+ },
56
+ cursor: 'pointer'
57
+ },
58
+ children: name
59
+ }));
60
+ }
61
+ LinkUser.propTypes = {
62
+ name: _propTypes.default.string.isRequired
63
+ };
64
+ function TabOAuth(_ref2) {
65
+ var _user$extraConfigs;
66
+ let {
67
+ user,
68
+ onChangeUser
69
+ } = _ref2;
70
+ const {
71
+ api,
72
+ inService
73
+ } = (0, _node.useNodeContext)();
74
+ const {
75
+ teamDid
76
+ } = (0, _team.useTeamContext)();
77
+ const connectedAccounts = ((_user$extraConfigs = user.extraConfigs) === null || _user$extraConfigs === void 0 ? void 0 : _user$extraConfigs.connectedAccounts) || [];
78
+ const sourceIds = connectedAccounts.map(x => x.id);
79
+ const users = (0, _reactUse.useAsync)(async () => {
80
+ if (sourceIds !== null && sourceIds !== void 0 && sourceIds.length) {
81
+ const {
82
+ users: data
83
+ } = await api.getUsers({
84
+ input: {
85
+ teamDid,
86
+ sourceIds
87
+ }
88
+ });
89
+ return data;
90
+ }
91
+ return [];
92
+ }, []);
93
+ if (users.loading || !users.value) {
94
+ return null;
95
+ }
96
+ return users.value.map(userItem => {
97
+ var _userItem$extraConfig;
98
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
99
+ style: {
100
+ alignItems: 'flex-start'
101
+ },
102
+ valueComponent: "div",
103
+ nameWidth: 120,
104
+ name: (_userItem$extraConfig = userItem.extraConfigs) === null || _userItem$extraConfig === void 0 ? void 0 : _userItem$extraConfig.sourceProvider,
105
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
106
+ display: "flex",
107
+ alignItems: "center",
108
+ title: userItem.email,
109
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar2.default, {
110
+ src: (0, _util2.parseAvatar)(userItem.avatar, teamDid, inService),
111
+ size: 20,
112
+ did: userItem.did,
113
+ shape: "circle",
114
+ style: {
115
+ borderRadius: '100%',
116
+ overflow: 'hidden'
117
+ }
118
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkUser, {
119
+ name: userItem.fullName,
120
+ mx: 1,
121
+ onClick: () => {
122
+ onChangeUser(userItem);
123
+ }
124
+ })]
125
+ })
126
+ }, userItem.did);
127
+ });
128
+ }
129
+ TabOAuth.propTypes = {
130
+ user: _propTypes.default.object.isRequired,
131
+ onChangeUser: _propTypes.default.func
132
+ };
133
+ TabOAuth.defaultProps = {
134
+ onChangeUser: () => {}
135
+ };
136
+ const defaultTab = 'info';
137
+ function Member(_ref3) {
35
138
  let {
36
139
  userDid,
37
140
  onCancel,
38
141
  initTab
39
- } = _ref;
142
+ } = _ref3;
40
143
  const {
41
144
  api,
42
145
  ws: {
@@ -52,38 +155,40 @@ function Member(_ref) {
52
155
  const {
53
156
  t
54
157
  } = (0, _context.useLocaleContext)();
55
- const [issuances, setIssuances] = (0, _react.useState)(null);
56
- const [user, setUser] = (0, _react.useState)(null);
158
+ const pageState = (0, _ahooks.useReactive)({
159
+ user: null,
160
+ issuances: null,
161
+ tab: initTab || defaultTab
162
+ });
57
163
  const {
58
164
  enqueueSnackbar
59
165
  } = (0, _notistack.useSnackbar)();
60
- const [tab, setTab] = (0, _react.useState)(initTab || 'info');
61
- const getData = async () => {
166
+ const getData = async (_teamDid, _userDid) => {
62
167
  try {
63
168
  const res = await api.doBatchQuery({
64
169
  getUser: {
65
170
  input: {
66
- teamDid,
171
+ teamDid: _teamDid,
67
172
  user: {
68
- did: userDid
173
+ did: _userDid
69
174
  }
70
175
  }
71
176
  },
72
177
  getPassportIssuances: {
73
178
  input: {
74
- teamDid,
75
- ownerDid: userDid
179
+ teamDid: _teamDid,
180
+ ownerDid: _userDid
76
181
  }
77
182
  }
78
183
  });
79
184
  if (res.getUser.user) {
80
- res.getUser.user.avatar = (0, _util2.parseAvatar)(res.getUser.user.avatar, teamDid, inService);
185
+ res.getUser.user.avatar = (0, _util2.parseAvatar)(res.getUser.user.avatar, _teamDid, inService);
81
186
 
82
187
  // for backwards compatibility
83
188
  res.getUser.user.passports = (res.getUser.user.passports || []).filter(x => x.issuer);
84
189
  }
85
- setUser(res.getUser.user || {});
86
- setIssuances(res.getPassportIssuances.list || []);
190
+ pageState.user = res.getUser.user || {};
191
+ pageState.issuances = res.getPassportIssuances.list || [];
87
192
  } catch (err) {
88
193
  enqueueSnackbar((0, _util.formatError)(err), {
89
194
  autoHideDuration: 5000,
@@ -93,45 +198,73 @@ function Member(_ref) {
93
198
  };
94
199
  (0, _react.useEffect)(() => {
95
200
  if (teamDid) {
96
- getData();
201
+ getData(teamDid, userDid);
97
202
  }
98
203
  }, [userDid, teamDid]); // eslint-disable-line
99
204
 
100
205
  const onUserEvent = data => {
101
206
  if (data.teamDid === teamDid && data.user && data.user.did === userDid) {
102
- getData();
207
+ getData(teamDid, userDid);
103
208
  }
104
209
  };
105
210
  useSubscription(_constant.EVENTS.USER_UPDATED, onUserEvent, [userDid, teamDid]);
106
211
  (0, _react.useEffect)(() => {
107
- if (issuances && !issuances.length && tab === 'issuances') {
108
- setTab('info');
212
+ if (pageState.issuances && !pageState.issuances.length && pageState.tab === 'issuances') {
213
+ pageState.tab = defaultTab;
109
214
  }
110
- }, [issuances]); // eslint-disable-line
215
+ }, [pageState.issuances]); // eslint-disable-line
216
+
217
+ const handleChangeUser = async changedUser => {
218
+ await getData(teamDid, changedUser.did);
219
+ pageState.tab = defaultTab;
220
+ };
111
221
 
112
222
  // tab
113
223
  const Info = () => {
114
- const rows = user ? [{
224
+ var _pageState$user$extra, _pageState$user$extra3;
225
+ const rows = pageState.user ? [{
115
226
  name: t('team.member.name'),
116
- value: user.fullName
227
+ value: pageState.user.fullName
117
228
  }, {
118
229
  name: t('common.email'),
119
- value: user.email
230
+ value: pageState.user.email
231
+ }, {
232
+ name: t('team.member.source'),
233
+ value: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
234
+ display: "flex",
235
+ alignItems: "center",
236
+ children: [t("team.member.source_".concat(pageState.user.source || _constant.USER_TYPE.WALLET)) || '-', ((_pageState$user$extra = pageState.user.extraConfigs) === null || _pageState$user$extra === void 0 ? void 0 : _pageState$user$extra.bindDid) && /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkUser, {
237
+ ml: 1,
238
+ name: t('oauth.alreadyBindWallet'),
239
+ onClick: () => {
240
+ var _pageState$user$extra2;
241
+ return handleChangeUser({
242
+ did: (_pageState$user$extra2 = pageState.user.extraConfigs) === null || _pageState$user$extra2 === void 0 ? void 0 : _pageState$user$extra2.bindDid
243
+ });
244
+ }
245
+ }), ((_pageState$user$extra3 = pageState.user.extraConfigs) === null || _pageState$user$extra3 === void 0 ? void 0 : _pageState$user$extra3.derivedAccount) && /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkUser, {
246
+ ml: 1,
247
+ name: t('oauth.alreadyBindOAuth'),
248
+ onClick: () => {
249
+ pageState.tab = 'oauth';
250
+ }
251
+ })]
252
+ })
120
253
  }, {
121
254
  name: t('team.member.allowLogin'),
122
- value: user.approved ? t('common.yes') : t('common.no')
255
+ value: pageState.user.approved ? t('common.yes') : t('common.no')
123
256
  }, {
124
257
  name: t('team.member.lastLogin'),
125
- value: (0, _util.formatToDatetime)(user.lastLoginAt)
258
+ value: (0, _util.formatToDatetime)(pageState.user.lastLoginAt)
126
259
  }, {
127
260
  name: t('team.member.lastLoginIp'),
128
- value: user.lastLoginIp || ''
261
+ value: pageState.user.lastLoginIp || ''
129
262
  }, {
130
263
  name: t('common.createdAt'),
131
- value: (0, _util.formatToDatetime)(user.createdAt)
264
+ value: (0, _util.formatToDatetime)(pageState.user.createdAt)
132
265
  }, {
133
266
  name: t('common.remark'),
134
- value: user.remark || '--'
267
+ value: pageState.user.remark || '--'
135
268
  }].filter(Boolean) : [];
136
269
  return rows.map(row => {
137
270
  if (row.name === t('common.did')) {
@@ -157,22 +290,35 @@ function Member(_ref) {
157
290
  const tabConfigs = {
158
291
  info: {
159
292
  label: t('common.basicInfo'),
160
- value: 'info',
293
+ value: defaultTab,
161
294
  component: Info
162
295
  },
296
+ oauth: {
297
+ label: t('oauth.thirdPartyLogin'),
298
+ value: 'oauth',
299
+ component: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(TabOAuth, {
300
+ user: pageState.user,
301
+ onChangeUser: handleChangeUser
302
+ })
303
+ },
163
304
  passports: {
164
305
  label: t('common.passport'),
165
306
  value: 'passports',
166
307
  component: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_passports.default, {
167
- user: user,
308
+ user: pageState.user,
168
309
  teamDid: teamDid,
169
310
  roles: roles,
170
311
  onCreate: () => {
171
- getData(teamDid);
172
- setTab('issuances');
312
+ getData(teamDid, userDid).then(() => {
313
+ // oauth 账户邀请后,不会产生待领取的邀请链接
314
+ // 当没有邀请链接的情况下,当前 tab 激活应当保持现状不变
315
+ if (enablePassportIssuance && pageState.issuances && !!pageState.issuances.length) {
316
+ pageState.tab = 'issuances';
317
+ }
318
+ });
173
319
  },
174
320
  onRefresh: () => {
175
- getData(teamDid);
321
+ getData(teamDid, userDid);
176
322
  }
177
323
  })
178
324
  },
@@ -180,30 +326,34 @@ function Member(_ref) {
180
326
  label: t('team.passport.issuance.pending'),
181
327
  value: 'issuances',
182
328
  component: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_passportIssuances.default, {
183
- issuances: issuances || [],
329
+ issuances: pageState.issuances || [],
184
330
  teamDid: teamDid,
185
- onRefresh: () => getData(teamDid)
331
+ onRefresh: () => getData(teamDid, userDid)
186
332
  })
187
333
  }
188
334
  };
189
- const tabs = Object.values(tabConfigs).map(_ref2 => {
335
+ const tabs = Object.values(tabConfigs).map(_ref4 => {
190
336
  let {
191
337
  label,
192
338
  value
193
- } = _ref2;
339
+ } = _ref4;
194
340
  return {
195
341
  label,
196
342
  value
197
343
  };
198
344
  }).filter(x => {
199
345
  if (x.value === 'issuances') {
200
- return enablePassportIssuance && issuances && !!issuances.length;
346
+ return enablePassportIssuance && pageState.issuances && !!pageState.issuances.length;
347
+ }
348
+ if (x.value === 'oauth') {
349
+ var _pageState$user;
350
+ return ((_pageState$user = pageState.user) === null || _pageState$user === void 0 ? void 0 : _pageState$user.source) !== _constant.USER_TYPE.DERIVED;
201
351
  }
202
352
  return true;
203
353
  });
204
- const tabConfig = tabConfigs[tab] || tabConfigs.info;
354
+ const tabConfig = tabConfigs[pageState.tab] || tabConfigs.info;
205
355
  const onTabChange = newTab => {
206
- setTab(newTab);
356
+ pageState.tab = newTab;
207
357
  };
208
358
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.default, {
209
359
  title: t('common.member'),
@@ -216,18 +366,18 @@ function Member(_ref) {
216
366
  }
217
367
  },
218
368
  fullWidth: true,
219
- actions: user && /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {
369
+ actions: pageState.user && /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {
220
370
  permission: inService ? '' : 'mutate_team',
221
371
  role: inService ? _util.BlockletAdminRoles : [],
222
372
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_toggleUserApproval.default, {
223
- user: user,
224
- children: _ref3 => {
373
+ user: pageState.user,
374
+ children: _ref5 => {
225
375
  let {
226
376
  open
227
- } = _ref3;
377
+ } = _ref5;
228
378
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(BlockButton, {
229
379
  onClick: open,
230
- children: [user.approved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ForbidLoginIcon.default, {
380
+ children: [pageState.user.approved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ForbidLoginIcon.default, {
231
381
  style: {
232
382
  fontSize: '1.2em',
233
383
  marginRight: '0.4em'
@@ -237,21 +387,21 @@ function Member(_ref) {
237
387
  fontSize: '1.2em',
238
388
  marginRight: '0.4em'
239
389
  }
240
- }), user.approved ? t('team.member.forbidLogin') : t('team.member.allowLogin')]
390
+ }), pageState.user.approved ? t('team.member.forbidLogin') : t('team.member.allowLogin')]
241
391
  });
242
392
  }
243
393
  })
244
394
  }),
245
395
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, {
246
- children: [!user && /*#__PURE__*/(0, _jsxRuntime.jsx)(Center, {
396
+ children: [!pageState.user && /*#__PURE__*/(0, _jsxRuntime.jsx)(Center, {
247
397
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {})
248
- }), user && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
398
+ }), pageState.user && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
249
399
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
250
400
  display: "flex",
251
401
  alignItems: "center",
252
402
  className: "info",
253
403
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
254
- src: user.avatar,
404
+ src: pageState.user.avatar,
255
405
  style: {
256
406
  width: 48,
257
407
  height: 48,
@@ -261,12 +411,12 @@ function Member(_ref) {
261
411
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
262
412
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
263
413
  className: "name",
264
- children: user.fullName
414
+ children: pageState.user.fullName
265
415
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
266
416
  className: "did",
267
417
  mt: 1,
268
418
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
269
- children: user.did
419
+ children: pageState.user.did
270
420
  })
271
421
  })]
272
422
  })]
@@ -275,7 +425,7 @@ function Member(_ref) {
275
425
  className: "tabs",
276
426
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tabs.default, {
277
427
  tabs: tabs,
278
- current: tab,
428
+ current: pageState.tab,
279
429
  onChange: onTabChange,
280
430
  scrollButtons: "auto"
281
431
  })
@@ -293,7 +443,7 @@ Member.propTypes = {
293
443
  initTab: _propTypes.default.string
294
444
  };
295
445
  Member.defaultProps = {
296
- initTab: 'info'
446
+ initTab: defaultTab
297
447
  };
298
448
  const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .info {\n .name {\n font-weight: 400;\n font-size: 18px;\n line-height: 25px;\n color: #222222;\n }\n }\n\n .tabs {\n margin-top: 24px;\n margin-left: 0;\n margin-right: 0;\n }\n\n .body {\n margin-top: 24px;\n }\n"])));
299
449
  const Center = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 200px;\n"])));
package/lib/util/index.js CHANGED
@@ -471,6 +471,9 @@ const getBlockletLogoUrl = _ref4 => {
471
471
  baseUrl,
472
472
  logoPath
473
473
  } = _ref4;
474
+ if (logoPath && logoPath.startsWith('http')) {
475
+ return logoPath;
476
+ }
474
477
  if (baseUrl.startsWith('http') && logoPath) {
475
478
  return (0, _urlJoin.default)(baseUrl, formatRegistryLogoPath(did, logoPath));
476
479
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.16.0-beta-58020de5",
6
+ "version": "1.16.0-beta-b741bcb3",
7
7
  "description": "UX components shared across abtnode packages",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -15,26 +15,27 @@
15
15
  "prepublishOnly": "npm run build",
16
16
  "build": "babel src --out-dir lib --copy-files",
17
17
  "watch": "babel src --out-dir lib -w --copy-files",
18
+ "coverage": "npm run test -- --coverage",
18
19
  "test": "node tools/jest.js"
19
20
  },
20
21
  "keywords": [],
21
22
  "author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
22
23
  "license": "MIT",
23
24
  "dependencies": {
24
- "@abtnode/auth": "1.16.0-beta-58020de5",
25
- "@abtnode/constant": "1.16.0-beta-58020de5",
26
- "@abtnode/util": "1.16.0-beta-58020de5",
27
- "@arcblock/did-connect": "^2.5.16",
25
+ "@abtnode/auth": "1.16.0-beta-b741bcb3",
26
+ "@abtnode/constant": "1.16.0-beta-b741bcb3",
27
+ "@abtnode/util": "1.16.0-beta-b741bcb3",
28
+ "@arcblock/did-connect": "^2.5.18",
28
29
  "@arcblock/did-motif": "^1.1.10",
29
- "@arcblock/icons": "^2.5.16",
30
- "@arcblock/react-hooks": "^2.5.16",
31
- "@arcblock/terminal": "^2.5.16",
32
- "@arcblock/ux": "^2.5.16",
33
- "@blocklet/constant": "1.16.0-beta-58020de5",
30
+ "@arcblock/icons": "^2.5.18",
31
+ "@arcblock/react-hooks": "^2.5.18",
32
+ "@arcblock/terminal": "^2.5.18",
33
+ "@arcblock/ux": "^2.5.18",
34
+ "@blocklet/constant": "1.16.0-beta-b741bcb3",
34
35
  "@blocklet/launcher-layout": "1.9.65",
35
- "@blocklet/list": "^0.11.10",
36
- "@blocklet/meta": "1.16.0-beta-58020de5",
37
- "@blocklet/ui-react": "^2.5.16",
36
+ "@blocklet/list": "^0.11.11",
37
+ "@blocklet/meta": "1.16.0-beta-b741bcb3",
38
+ "@blocklet/ui-react": "^2.5.18",
38
39
  "@emotion/react": "^11.10.4",
39
40
  "@emotion/styled": "^11.10.4",
40
41
  "@iconify/react": "^4.0.0",
@@ -88,5 +89,5 @@
88
89
  "@babel/preset-react": "^7.18.6",
89
90
  "babel-plugin-inline-react-svg": "^1.1.2"
90
91
  },
91
- "gitHead": "9d3f47f9827acf13e9efea38cd605d3b36f9f523"
92
+ "gitHead": "f41666daf2c499566ff2f8e76a2de4fa6e1122ba"
92
93
  }