@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.
- package/lib/SessionManager/index.js +22 -24
- package/package.json +4 -4
- package/src/SessionManager/index.jsx +22 -27
@@ -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$
|
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
|
139
|
-
const
|
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 (
|
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 (
|
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:
|
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 && !
|
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
|
-
}),
|
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.
|
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": "
|
50
|
+
"gitHead": "e633e62c5c43e4ba063079001e226f48b84f81ab",
|
51
51
|
"dependencies": {
|
52
52
|
"@arcblock/did-motif": "^1.1.10",
|
53
|
-
"@arcblock/icons": "^2.5.
|
54
|
-
"@arcblock/react-hooks": "^2.5.
|
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
|
92
|
-
|
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 (
|
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 (
|
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 && !
|
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
|
-
{
|
321
|
-
? `${translations[locale].bind}
|
322
|
-
: `${translations[locale].bind}
|
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,
|