@arcblock/ux 2.5.19 → 2.5.21

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.
@@ -58,10 +58,6 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
58
58
 
59
59
  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; }
60
60
 
61
- const USER_TYPE = Object.freeze({
62
- DERIVED: 'derived',
63
- WALLET: 'wallet'
64
- });
65
61
  const messages = {
66
62
  zh: {
67
63
  switchDid: '切换账户',
@@ -95,7 +91,7 @@ const translations = {
95
91
  };
96
92
 
97
93
  function SessionManager(_ref) {
98
- var _session$user, _session$user$avatar, _session$user3, _session$user4, _session$user4$extraC, _session$user5, _session$user6, _session$user7, _session$user8, _session$user9;
94
+ var _session$user, _session$user$avatar, _session$user3, _session$user3$extraC, _session$user4, _session$user4$extraC, _session$user5, _session$user5$extraC, _session$user6, _session$user7;
99
95
 
100
96
  let {
101
97
  session,
@@ -135,8 +131,18 @@ function SessionManager(_ref) {
135
131
  return (_session$user2 = session.user) === null || _session$user2 === void 0 ? void 0 : (_session$user2$passpo = _session$user2.passports) === null || _session$user2$passpo === void 0 ? void 0 : _session$user2$passpo.find(item => item.name === session.user.role);
136
132
  }, [session.user]);
137
133
  const browser = (0, _useBrowser.default)();
138
- const hasBindOAuth = ((_session$user3 = session.user) === null || _session$user3 === void 0 ? void 0 : _session$user3.source) === USER_TYPE.WALLET && ((_session$user4 = session.user) === null || _session$user4 === void 0 ? void 0 : (_session$user4$extraC = _session$user4.extraConfigs) === null || _session$user4$extraC === void 0 ? void 0 : _session$user4$extraC.derivedAccount);
139
- const isDerivedAccount = ((_session$user5 = session.user) === null || _session$user5 === void 0 ? void 0 : _session$user5.source) === USER_TYPE.DERIVED;
134
+ const isRawWalletAccount = !((_session$user3 = session.user) !== null && _session$user3 !== void 0 && (_session$user3$extraC = _session$user3.extraConfigs) !== null && _session$user3$extraC !== void 0 && _session$user3$extraC.sourceProvider) || ((_session$user4 = session.user) === null || _session$user4 === void 0 ? void 0 : (_session$user4$extraC = _session$user4.extraConfigs) === null || _session$user4$extraC === void 0 ? void 0 : _session$user4$extraC.sourceProvider) === 'wallet';
135
+ const connectedAccounts = ((_session$user5 = session.user) === null || _session$user5 === void 0 ? void 0 : (_session$user5$extraC = _session$user5.extraConfigs) === null || _session$user5$extraC === void 0 ? void 0 : _session$user5$extraC.connectedAccounts) || [];
136
+ let hasBindAccount = false;
137
+
138
+ if (isRawWalletAccount) {
139
+ if (connectedAccounts.some(item => item.provider !== 'wallet')) {
140
+ hasBindAccount = true;
141
+ }
142
+ } else if (connectedAccounts.some(item => item.provider === 'wallet')) {
143
+ hasBindAccount = true;
144
+ }
145
+
140
146
  const oauthConfigList = Object.entries(oauthConfigs).map(_ref2 => {
141
147
  let [key, value] = _ref2;
142
148
  return _objectSpread(_objectSpread({}, value), {}, {
@@ -228,27 +234,27 @@ function SessionManager(_ref) {
228
234
  user
229
235
  } = session;
230
236
 
231
- if ((user === null || user === void 0 ? void 0 : user.source) === USER_TYPE.DERIVED) {
232
- switchOAuthPassport(user);
233
- } else {
237
+ if (isRawWalletAccount) {
234
238
  setUserOpen(false);
235
239
  session.switchPassport(function () {
236
240
  setUserOpen(false);
237
241
  onSwitchPassport(...arguments);
238
242
  });
243
+ } else {
244
+ switchOAuthPassport(user);
239
245
  }
240
246
  }
241
247
 
242
248
  function _onBindWallet() {
243
249
  setUserOpen(false);
244
250
 
245
- if (session.user.source === USER_TYPE.DERIVED) {
251
+ if (isRawWalletAccount) {
252
+ bindOAuth();
253
+ } else {
246
254
  session.bindWallet(function () {
247
255
  setUserOpen(false);
248
256
  onBindWallet(...arguments);
249
257
  });
250
- } else {
251
- bindOAuth();
252
258
  }
253
259
  }
254
260
 
@@ -328,7 +334,7 @@ function SessionManager(_ref) {
328
334
  })]
329
335
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
330
336
  responsive: false,
331
- children: isDerivedAccount ? (_session$user8 = session.user) === null || _session$user8 === void 0 ? void 0 : _session$user8.email : session.user.did
337
+ children: session.user.did
332
338
  })]
333
339
  }), Array.isArray(menu) && menu.map((menuItem, index) => {
334
340
  const {
@@ -386,21 +392,14 @@ function SessionManager(_ref) {
386
392
  component: _VpnKeyOutlined.default,
387
393
  className: "session-manager-menu-icon"
388
394
  }), message.switchPassport]
389
- }), oauthConfigList.length > 0 && !hasBindOAuth && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
395
+ }), oauthConfigList.length > 0 && !hasBindAccount && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
390
396
  className: "session-manager-menu-item",
391
397
  onClick: _onBindWallet,
392
398
  "data-cy": "sessionManager-bind-trigger",
393
399
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
394
400
  component: _Link.default,
395
401
  className: "session-manager-menu-icon"
396
- }), ((_session$user9 = session.user) === null || _session$user9 === void 0 ? void 0 : _session$user9.source) === USER_TYPE.DERIVED ? "".concat(translations[locale].bind, "DID Wallet") : "".concat(translations[locale].bind).concat(translations[locale].thirdParty)]
397
- }), oauthConfigList.length > 0 && hasBindOAuth && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
398
- className: "session-manager-menu-item",
399
- disabled: true,
400
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
401
- component: _Link.default,
402
- className: "session-manager-menu-icon"
403
- }), translations[locale].alreadyBindOAuth]
402
+ }), isRawWalletAccount ? "".concat(translations[locale].bind).concat(translations[locale].thirdParty) : "".concat(translations[locale].bind, "DID Wallet")]
404
403
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
405
404
  className: "session-manager-menu-item",
406
405
  onClick: _onLogout,
@@ -430,7 +429,6 @@ SessionManager.propTypes = {
430
429
  name: _propTypes.default.string.isRequired,
431
430
  title: _propTypes.default.string.isRequired
432
431
  })),
433
- source: _propTypes.default.oneOf([USER_TYPE.DERIVED, USER_TYPE.WALLET, undefined]),
434
432
  extraConfigs: _propTypes.default.object
435
433
  }),
436
434
  login: _propTypes.default.func.isRequired,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/ux",
3
- "version": "2.5.19",
3
+ "version": "2.5.21",
4
4
  "description": "Common used react components for arcblock products",
5
5
  "keywords": [
6
6
  "react",
@@ -47,11 +47,11 @@
47
47
  "react": ">=18.1.0",
48
48
  "react-ga": "^2.7.0"
49
49
  },
50
- "gitHead": "64969d2186586d8fe4d43e34e82ee234d04e27be",
50
+ "gitHead": "e633e62c5c43e4ba063079001e226f48b84f81ab",
51
51
  "dependencies": {
52
52
  "@arcblock/did-motif": "^1.1.10",
53
- "@arcblock/icons": "^2.5.19",
54
- "@arcblock/react-hooks": "^2.5.19",
53
+ "@arcblock/icons": "^2.5.21",
54
+ "@arcblock/react-hooks": "^2.5.21",
55
55
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
56
56
  "@emotion/react": "^11.10.4",
57
57
  "@emotion/styled": "^11.10.4",
@@ -18,11 +18,6 @@ import { styled } from '../Theme';
18
18
  import DidAvatar from '../Avatar';
19
19
  import DidAddress from '../Address';
20
20
 
21
- const USER_TYPE = Object.freeze({
22
- DERIVED: 'derived',
23
- WALLET: 'wallet',
24
- });
25
-
26
21
  const messages = {
27
22
  zh: {
28
23
  switchDid: '切换账户',
@@ -88,8 +83,17 @@ function SessionManager({
88
83
  );
89
84
  const browser = useBrowser();
90
85
 
91
- const hasBindOAuth = session.user?.source === USER_TYPE.WALLET && session.user?.extraConfigs?.derivedAccount;
92
- const isDerivedAccount = session.user?.source === USER_TYPE.DERIVED;
86
+ const isRawWalletAccount =
87
+ !session.user?.extraConfigs?.sourceProvider || session.user?.extraConfigs?.sourceProvider === 'wallet';
88
+ const connectedAccounts = session.user?.extraConfigs?.connectedAccounts || [];
89
+ let hasBindAccount = false;
90
+ if (isRawWalletAccount) {
91
+ if (connectedAccounts.some((item) => item.provider !== 'wallet')) {
92
+ hasBindAccount = true;
93
+ }
94
+ } else if (connectedAccounts.some((item) => item.provider === 'wallet')) {
95
+ hasBindAccount = true;
96
+ }
93
97
 
94
98
  const oauthConfigList = Object.entries(oauthConfigs)
95
99
  .map(([key, value]) => {
@@ -158,26 +162,26 @@ function SessionManager({
158
162
  }
159
163
  function _onSwitchPassport() {
160
164
  const { user } = session;
161
- if (user?.source === USER_TYPE.DERIVED) {
162
- switchOAuthPassport(user);
163
- } else {
165
+ if (isRawWalletAccount) {
164
166
  setUserOpen(false);
165
167
  session.switchPassport((...args) => {
166
168
  setUserOpen(false);
167
169
  onSwitchPassport(...args);
168
170
  });
171
+ } else {
172
+ switchOAuthPassport(user);
169
173
  }
170
174
  }
171
175
 
172
176
  function _onBindWallet() {
173
177
  setUserOpen(false);
174
- if (session.user.source === USER_TYPE.DERIVED) {
178
+ if (isRawWalletAccount) {
179
+ bindOAuth();
180
+ } else {
175
181
  session.bindWallet((...args) => {
176
182
  setUserOpen(false);
177
183
  onBindWallet(...args);
178
184
  });
179
- } else {
180
- bindOAuth();
181
185
  }
182
186
  }
183
187
 
@@ -244,9 +248,7 @@ function SessionManager({
244
248
  />
245
249
  )}
246
250
  </div>
247
- <DidAddress responsive={false}>
248
- {isDerivedAccount ? session.user?.email : session.user.did}
249
- </DidAddress>
251
+ <DidAddress responsive={false}>{session.user.did}</DidAddress>
250
252
  </div>
251
253
  {Array.isArray(menu) &&
252
254
  menu.map((menuItem, index) => {
@@ -311,21 +313,15 @@ function SessionManager({
311
313
  {message.switchPassport}
312
314
  </MenuItem>
313
315
  )}
314
- {oauthConfigList.length > 0 && !hasBindOAuth && (
316
+ {oauthConfigList.length > 0 && !hasBindAccount && (
315
317
  <MenuItem
316
318
  className="session-manager-menu-item"
317
319
  onClick={_onBindWallet}
318
320
  data-cy="sessionManager-bind-trigger">
319
321
  <SvgIcon component={BindWalletIcon} className="session-manager-menu-icon" />
320
- {session.user?.source === USER_TYPE.DERIVED
321
- ? `${translations[locale].bind}DID Wallet`
322
- : `${translations[locale].bind}${translations[locale].thirdParty}`}
323
- </MenuItem>
324
- )}
325
- {oauthConfigList.length > 0 && hasBindOAuth && (
326
- <MenuItem className="session-manager-menu-item" disabled>
327
- <SvgIcon component={BindWalletIcon} className="session-manager-menu-icon" />
328
- {translations[locale].alreadyBindOAuth}
322
+ {isRawWalletAccount
323
+ ? `${translations[locale].bind}${translations[locale].thirdParty}`
324
+ : `${translations[locale].bind}DID Wallet`}
329
325
  </MenuItem>
330
326
  )}
331
327
 
@@ -360,7 +356,6 @@ SessionManager.propTypes = {
360
356
  title: PropTypes.string.isRequired,
361
357
  })
362
358
  ),
363
- source: PropTypes.oneOf([USER_TYPE.DERIVED, USER_TYPE.WALLET, undefined]),
364
359
  extraConfigs: PropTypes.object,
365
360
  }),
366
361
  login: PropTypes.func.isRequired,