@arcblock/ux 2.7.15 → 2.7.17
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/es/Dialog/confirm.js +10 -8
- package/es/Img/index.js +7 -7
- package/es/SessionManager/account-item.js +133 -0
- package/es/SessionManager/add-account-item.js +100 -0
- package/es/SessionManager/federated-login-detecter.js +37 -33
- package/es/SessionManager/index.js +119 -259
- package/es/SessionManager/manage-accounts.js +156 -0
- package/es/SessionManager/manage-blocklet.js +70 -0
- package/es/SessionManager/menu-accordion.js +104 -0
- package/es/SessionManager/translation.js +52 -0
- package/es/SessionManager/use-config.js +34 -0
- package/es/SessionManager/user-info.js +147 -0
- package/es/SessionManager/user-popper.js +10 -53
- package/es/SessionManager/utils.js +2 -0
- package/es/Typography/index.js +89 -0
- package/es/Util/federated.js +65 -0
- package/es/Util/index.js +7 -0
- package/lib/Dialog/confirm.js +9 -7
- package/lib/Img/index.js +7 -7
- package/lib/SessionManager/account-item.js +141 -0
- package/lib/SessionManager/add-account-item.js +108 -0
- package/lib/SessionManager/federated-login-detecter.js +38 -33
- package/lib/SessionManager/index.js +122 -272
- package/lib/SessionManager/manage-accounts.js +168 -0
- package/lib/SessionManager/manage-blocklet.js +86 -0
- package/lib/SessionManager/menu-accordion.js +112 -0
- package/lib/SessionManager/translation.js +59 -0
- package/lib/SessionManager/use-config.js +41 -0
- package/lib/SessionManager/user-info.js +163 -0
- package/lib/SessionManager/user-popper.js +8 -8
- package/lib/SessionManager/utils.js +16 -0
- package/lib/Typography/index.js +100 -0
- package/lib/Util/federated.js +85 -0
- package/lib/Util/index.js +11 -2
- package/package.json +12 -5
- package/src/Dialog/confirm.js +9 -6
- package/src/Img/index.js +5 -5
- package/src/SessionManager/account-item.jsx +109 -0
- package/src/SessionManager/add-account-item.jsx +97 -0
- package/src/SessionManager/federated-login-detecter.jsx +42 -29
- package/src/SessionManager/index.jsx +131 -259
- package/src/SessionManager/manage-accounts.jsx +157 -0
- package/src/SessionManager/manage-blocklet.jsx +70 -0
- package/src/SessionManager/menu-accordion.jsx +94 -0
- package/src/SessionManager/translation.js +52 -0
- package/src/SessionManager/use-config.js +33 -0
- package/src/SessionManager/user-info.jsx +116 -0
- package/src/SessionManager/user-popper.jsx +6 -51
- package/src/SessionManager/utils.js +3 -0
- package/src/Typography/index.jsx +79 -0
- package/src/Util/federated.js +73 -0
- package/src/Util/index.js +8 -0
- /package/src/Avatar/{did-motif.js → did-motif.jsx} +0 -0
- /package/src/Avatar/{index.js → index.jsx} +0 -0
- /package/src/Header/{auto-hidden.js → auto-hidden.jsx} +0 -0
- /package/src/Header/{header.js → header.jsx} +0 -0
- /package/src/Header/{responsive-header.js → responsive-header.jsx} +0 -0
@@ -7,26 +7,25 @@ exports.default = void 0;
|
|
7
7
|
var _react = require("react");
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
9
9
|
var _material = require("@mui/material");
|
10
|
-
var _PersonOutline = _interopRequireDefault(require("@mui/icons-material/PersonOutline"));
|
11
|
-
var _Link = _interopRequireDefault(require("@mui/icons-material/Link"));
|
12
|
-
var _VpnKeyOutlined = _interopRequireDefault(require("@mui/icons-material/VpnKeyOutlined"));
|
13
|
-
var _ShieldCheck = _interopRequireDefault(require("mdi-material-ui/ShieldCheck"));
|
14
10
|
var _Account = _interopRequireDefault(require("@arcblock/icons/lib/Account"));
|
15
|
-
var _OpenIn = _interopRequireDefault(require("@arcblock/icons/lib/OpenIn"));
|
16
|
-
var _Disconnect = _interopRequireDefault(require("@arcblock/icons/lib/Disconnect"));
|
17
|
-
var _Switch = _interopRequireDefault(require("@arcblock/icons/lib/Switch"));
|
18
|
-
var _useBrowser = _interopRequireDefault(require("@arcblock/react-hooks/lib/useBrowser"));
|
19
11
|
var _noop = _interopRequireDefault(require("lodash/noop"));
|
20
|
-
var
|
12
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
13
|
+
var _ahooks = require("ahooks");
|
21
14
|
var _Avatar = _interopRequireDefault(require("../Avatar"));
|
22
|
-
var _Address = _interopRequireDefault(require("../Address"));
|
23
15
|
var _Util = require("../Util");
|
24
16
|
var _federatedLoginDetecter = _interopRequireDefault(require("./federated-login-detecter"));
|
25
17
|
var _userPopper = _interopRequireDefault(require("./user-popper"));
|
18
|
+
var _userInfo = _interopRequireDefault(require("./user-info"));
|
19
|
+
var _util = require("../Locale/util");
|
20
|
+
var _manageAccounts = _interopRequireDefault(require("./manage-accounts"));
|
21
|
+
var _manageBlocklet = _interopRequireDefault(require("./manage-blocklet"));
|
22
|
+
var _translation = require("./translation");
|
23
|
+
var _utils = require("./utils");
|
24
|
+
var _useConfig = _interopRequireDefault(require("./use-config"));
|
25
|
+
var _federated = require("../Util/federated");
|
26
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
27
|
-
const _excluded = ["session", "locale", "showText", "showRole", "switchDid", "switchProfile", "switchPassport", "disableLogout", "onLogin", "onLogout", "onSwitchDid", "onSwitchProfile", "onSwitchPassport", "onBindWallet", "menu", "menuRender", "dark", "size"]
|
28
|
-
|
29
|
-
/* eslint-disable react/no-array-index-key */
|
27
|
+
const _excluded = ["session", "locale", "showText", "showRole", "switchDid", "switchProfile", "switchPassport", "disableLogout", "onLogin", "onLogout", "onSwitchDid", "onSwitchProfile", "onSwitchPassport", "onBindWallet", "menu", "menuRender", "dark", "size", "showManageBlocklet"];
|
28
|
+
/* eslint-disable react/prop-types */
|
30
29
|
/* eslint-disable react/jsx-no-bind */
|
31
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
32
31
|
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; }
|
@@ -36,47 +35,8 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
36
35
|
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); }
|
37
36
|
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; }
|
38
37
|
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; }
|
39
|
-
const translations = {
|
40
|
-
en: {
|
41
|
-
account: 'account',
|
42
|
-
switchDid: 'Switch DID',
|
43
|
-
switchTo: 'Switch to',
|
44
|
-
switchProfile: 'Switch Profile',
|
45
|
-
switchPassport: 'Switch Passport',
|
46
|
-
disconnect: 'Disconnect',
|
47
|
-
connect: 'Connect',
|
48
|
-
openInWallet: 'Open DID Wallet',
|
49
|
-
alreadyBindOAuth: 'Already bind Auth0',
|
50
|
-
bind: 'Bind ',
|
51
|
-
thirdParty: 'Third Party Login',
|
52
|
-
connectedWith: 'Connected with'
|
53
|
-
},
|
54
|
-
zh: {
|
55
|
-
account: '账号',
|
56
|
-
switchDid: '切换账户',
|
57
|
-
switchTo: '切换至',
|
58
|
-
switchProfile: '切换用户信息',
|
59
|
-
switchPassport: '切换通行证',
|
60
|
-
disconnect: '退出',
|
61
|
-
connect: '登录',
|
62
|
-
openInWallet: '打开 DID 钱包',
|
63
|
-
// NOTE: 目前只有 Auth0,展示出具体的第三方名字会更好
|
64
|
-
alreadyBindOAuth: '已绑定 Auth0 账号',
|
65
|
-
bind: '绑定',
|
66
|
-
thirdParty: '第三方登录',
|
67
|
-
connectedWith: '连接至'
|
68
|
-
}
|
69
|
-
};
|
70
|
-
const getConnectedAccounts = user => {
|
71
|
-
var _user$extraConfigs;
|
72
|
-
return (user === null || user === void 0 ? void 0 : user.connectedAccounts) || (user === null || user === void 0 ? void 0 : (_user$extraConfigs = user.extraConfigs) === null || _user$extraConfigs === void 0 ? void 0 : _user$extraConfigs.connectedAccounts) || [];
|
73
|
-
};
|
74
|
-
const getSourceProvider = user => {
|
75
|
-
var _user$extraConfigs2;
|
76
|
-
return (user === null || user === void 0 ? void 0 : user.sourceProvider) || (user === null || user === void 0 ? void 0 : (_user$extraConfigs2 = user.extraConfigs) === null || _user$extraConfigs2 === void 0 ? void 0 : _user$extraConfigs2.sourceProvider) || 'wallet';
|
77
|
-
};
|
78
38
|
function SessionManager(_ref) {
|
79
|
-
var _session$user, _session$user$avatar
|
39
|
+
var _session$user, _session$user$avatar;
|
80
40
|
let {
|
81
41
|
session,
|
82
42
|
locale,
|
@@ -95,36 +55,34 @@ function SessionManager(_ref) {
|
|
95
55
|
menu,
|
96
56
|
menuRender,
|
97
57
|
dark,
|
98
|
-
size
|
58
|
+
size,
|
59
|
+
showManageBlocklet
|
99
60
|
} = _ref,
|
100
61
|
rest = _objectWithoutProperties(_ref, _excluded);
|
101
|
-
const
|
62
|
+
const latestSession = (0, _ahooks.useLatest)(session);
|
63
|
+
const {
|
64
|
+
connectAccount,
|
65
|
+
config,
|
66
|
+
setConfig
|
67
|
+
} = (0, _useConfig.default)();
|
68
|
+
const t = (0, _ahooks.useMemoizedFn)(function (key) {
|
69
|
+
let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
70
|
+
return (0, _util.translate)(_translation.translations, key, locale, 'en', data);
|
71
|
+
});
|
102
72
|
const userAnchorRef = (0, _react.useRef)(null);
|
103
|
-
// eslint-disable-next-line react/prop-types
|
104
73
|
const {
|
105
74
|
logoutOAuth,
|
106
|
-
bindOAuth,
|
107
|
-
configs: oauthConfigs,
|
108
75
|
switchOAuthPassport
|
109
76
|
} = session.useOAuth();
|
110
77
|
const [userOpen, setUserOpen] = (0, _react.useState)(false);
|
111
78
|
|
112
79
|
// base64 img maybe have some blank char, need encodeURIComponent to transform it
|
113
80
|
const avatar = (0, _Util.getUserAvatar)((_session$user = session.user) === null || _session$user === void 0 ? void 0 : (_session$user$avatar = _session$user.avatar) === null || _session$user$avatar === void 0 ? void 0 : _session$user$avatar.replace(/\s/g, encodeURIComponent(' ')));
|
114
|
-
const
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
// eslint-disable-next-line react/prop-types
|
120
|
-
const {
|
121
|
-
walletDid
|
122
|
-
} = session.useDid({
|
123
|
-
session
|
124
|
-
});
|
125
|
-
const isRawWalletAccount = getSourceProvider(session.user) === 'wallet';
|
126
|
-
const connectedAccounts = getConnectedAccounts(session.user);
|
127
|
-
const federatedAccount = connectedAccounts.find(item => item.provider === 'federated');
|
81
|
+
const isRawWalletAccount = (0, _utils.getSourceProvider)(session.user) === 'wallet';
|
82
|
+
const connectedAccounts = (0, _utils.getConnectedAccounts)(session.user);
|
83
|
+
const isFirstLoading = (0, _react.useMemo)(() => {
|
84
|
+
return (session === null || session === void 0 ? void 0 : session.initialized) === false && (session === null || session === void 0 ? void 0 : session.loading) === true;
|
85
|
+
}, [session === null || session === void 0 ? void 0 : session.initialized, session === null || session === void 0 ? void 0 : session.loading]);
|
128
86
|
let hasBindWallet = false;
|
129
87
|
let hasBindAccount = false;
|
130
88
|
if (isRawWalletAccount) {
|
@@ -136,19 +94,38 @@ function SessionManager(_ref) {
|
|
136
94
|
hasBindAccount = true;
|
137
95
|
hasBindWallet = true;
|
138
96
|
}
|
139
|
-
const
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
97
|
+
const _connectAccount = (0, _ahooks.useMemoizedFn)(async () => {
|
98
|
+
var _latestSession$curren, _window;
|
99
|
+
// HACK: 强制等待组件渲染一轮,以拿到最新的 session 值
|
100
|
+
await (0, _Util.sleep)();
|
101
|
+
if (!((_latestSession$curren = latestSession.current) !== null && _latestSession$curren !== void 0 && _latestSession$curren.user)) {
|
102
|
+
return;
|
103
|
+
}
|
104
|
+
if (typeof window === 'undefined') {
|
105
|
+
return;
|
106
|
+
}
|
107
|
+
const blocklet = (_window = window) === null || _window === void 0 ? void 0 : _window.blocklet;
|
108
|
+
const currentApp = (0, _federated.getCurrentApp)(blocklet);
|
109
|
+
const masterApp = (0, _federated.getFederatedApp)(blocklet);
|
110
|
+
const targetApp = latestSession.current.user.sourceAppPid ? masterApp : currentApp;
|
111
|
+
if (targetApp) {
|
112
|
+
const loginAccount = _objectSpread({
|
113
|
+
did: latestSession.current.user.did,
|
114
|
+
avatar: latestSession.current.user.avatar,
|
115
|
+
provider: latestSession.current.provider
|
116
|
+
}, targetApp);
|
117
|
+
connectAccount(loginAccount);
|
118
|
+
}
|
119
|
+
});
|
120
|
+
|
121
|
+
// HACK: 用于处理 统一登录 的自动登录情况,添加一个已连接的账号
|
122
|
+
// 同时可用于以前的站点,会自动生成一个已连接的账号
|
123
|
+
(0, _react.useEffect)(() => {
|
124
|
+
if (session.user) {
|
125
|
+
_connectAccount();
|
126
|
+
}
|
127
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
128
|
+
}, [session.user]);
|
152
129
|
if (!session.user) {
|
153
130
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
154
131
|
children: [showText ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Button, _objectSpread(_objectSpread({
|
@@ -169,7 +146,7 @@ function SessionManager(_ref) {
|
|
169
146
|
style: {
|
170
147
|
lineHeight: '25px'
|
171
148
|
},
|
172
|
-
children:
|
149
|
+
children: t('connect')
|
173
150
|
})]
|
174
151
|
})) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, _objectSpread(_objectSpread({
|
175
152
|
ref: userAnchorRef
|
@@ -210,15 +187,21 @@ function SessionManager(_ref) {
|
|
210
187
|
function onToggleUser() {
|
211
188
|
setUserOpen(prevOpen => !prevOpen);
|
212
189
|
}
|
190
|
+
function close() {
|
191
|
+
setUserOpen(false);
|
192
|
+
}
|
213
193
|
function onCloseUser(e) {
|
214
194
|
if (userAnchorRef.current && userAnchorRef.current.contains(e.target)) {
|
215
195
|
return;
|
216
196
|
}
|
217
|
-
|
197
|
+
close();
|
218
198
|
}
|
219
199
|
function _onLogin() {
|
220
200
|
if (!isFirstLoading) {
|
221
|
-
session.login(
|
201
|
+
session.login(function () {
|
202
|
+
_connectAccount();
|
203
|
+
onLogin(...arguments);
|
204
|
+
});
|
222
205
|
}
|
223
206
|
}
|
224
207
|
function _onLogout() {
|
@@ -234,7 +217,7 @@ function SessionManager(_ref) {
|
|
234
217
|
}).catch(err => {
|
235
218
|
console.error(err);
|
236
219
|
}).finally(() => {
|
237
|
-
|
220
|
+
close();
|
238
221
|
});
|
239
222
|
});
|
240
223
|
}
|
@@ -242,29 +225,10 @@ function SessionManager(_ref) {
|
|
242
225
|
* @name 切换账户
|
243
226
|
* @description 该功能仅在登录后才能使用,目前仅用于切换普通登录和统一登录的账户,所以会增加一些与统一登录相关的逻辑
|
244
227
|
*/
|
245
|
-
|
246
|
-
const {
|
247
|
-
provider,
|
248
|
-
user
|
249
|
-
} = session;
|
250
|
-
if (!user) return;
|
251
|
-
let targetProvider = provider;
|
252
|
-
if (provider === 'federated') {
|
253
|
-
targetProvider = 'wallet';
|
254
|
-
} else if (['auth0', 'wallet'].includes(provider)) {
|
255
|
-
targetProvider = 'federated';
|
256
|
-
}
|
257
|
-
session.switchDid(function () {
|
258
|
-
setUserOpen(false);
|
259
|
-
onSwitchDid(...arguments);
|
260
|
-
}, {
|
261
|
-
provider: targetProvider,
|
262
|
-
providerMode: 'paramsFirst'
|
263
|
-
});
|
264
|
-
}
|
228
|
+
|
265
229
|
function _onSwitchProfile() {
|
266
230
|
session.switchProfile(function () {
|
267
|
-
|
231
|
+
close();
|
268
232
|
onSwitchProfile(...arguments);
|
269
233
|
});
|
270
234
|
}
|
@@ -273,28 +237,16 @@ function SessionManager(_ref) {
|
|
273
237
|
user,
|
274
238
|
provider
|
275
239
|
} = session;
|
276
|
-
if (
|
240
|
+
if (['auth0'].includes(provider)) {
|
277
241
|
switchOAuthPassport(user);
|
278
242
|
} else {
|
279
|
-
|
243
|
+
close();
|
280
244
|
session.switchPassport(function () {
|
281
|
-
|
245
|
+
close();
|
282
246
|
onSwitchPassport(...arguments);
|
283
247
|
});
|
284
248
|
}
|
285
249
|
}
|
286
|
-
function _onBindWallet() {
|
287
|
-
setUserOpen(false);
|
288
|
-
// FIXME: @zhanghan 暂时切换回 isRawWalletAccount 的方式来判断,在 did-connect 改版时,简化这里的关系判断
|
289
|
-
if (!isRawWalletAccount) {
|
290
|
-
session.bindWallet(function () {
|
291
|
-
setUserOpen(false);
|
292
|
-
onBindWallet(...arguments);
|
293
|
-
});
|
294
|
-
} else {
|
295
|
-
bindOAuth();
|
296
|
-
}
|
297
|
-
}
|
298
250
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
299
251
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, _objectSpread(_objectSpread({
|
300
252
|
ref: userAnchorRef,
|
@@ -323,151 +275,47 @@ function SessionManager(_ref) {
|
|
323
275
|
sx: {
|
324
276
|
p: 0
|
325
277
|
},
|
326
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
})
|
356
|
-
}), federatedAccount && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
357
|
-
className: "session-manager-id-item",
|
358
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
|
359
|
-
responsive: false,
|
360
|
-
children: federatedAccount.did
|
361
|
-
})
|
362
|
-
}), (session === null || session === void 0 ? void 0 : (_session$user5 = session.user) === null || _session$user5 === void 0 ? void 0 : _session$user5.email) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
363
|
-
className: "session-manager-id-item",
|
364
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
|
365
|
-
responsive: false,
|
366
|
-
children: session.user.email
|
367
|
-
})
|
368
|
-
})]
|
369
|
-
})]
|
370
|
-
}), Array.isArray(menu) && menu.map((menuItem, index) => {
|
371
|
-
const {
|
372
|
-
svgIcon
|
373
|
-
} = menuItem,
|
374
|
-
menuProps = _objectWithoutProperties(menuItem, _excluded2);
|
375
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, _objectSpread(_objectSpread({
|
376
|
-
className: "session-manager-menu-item"
|
377
|
-
}, _objectSpread(_objectSpread({}, menuProps), {}, {
|
378
|
-
icon: undefined,
|
379
|
-
label: undefined
|
380
|
-
})), {}, {
|
381
|
-
children: [svgIcon ? svgIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
|
382
|
-
component: svgIcon,
|
383
|
-
className: "session-manager-menu-icon"
|
384
|
-
}) : menuItem.icon, menuItem.label]
|
385
|
-
}), index);
|
386
|
-
}), menuRender({
|
387
|
-
classes: {
|
388
|
-
menuItem: 'session-manager-menu-item',
|
389
|
-
menuIcon: 'session-manager-menu-icon'
|
278
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_userInfo.default, {
|
279
|
+
session: session,
|
280
|
+
size: size,
|
281
|
+
locale: locale,
|
282
|
+
onSwitchProfile: () => {
|
283
|
+
close();
|
284
|
+
_onSwitchProfile();
|
285
|
+
},
|
286
|
+
onSwitchPassport: () => {
|
287
|
+
close();
|
288
|
+
_onSwitchPassport();
|
289
|
+
},
|
290
|
+
close: close,
|
291
|
+
switchProfile: switchProfile,
|
292
|
+
hasBindWallet: hasBindWallet
|
293
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_manageAccounts.default, {
|
294
|
+
session: session,
|
295
|
+
locale: locale,
|
296
|
+
onBindWallet: onBindWallet,
|
297
|
+
onSwitchDid: onSwitchDid,
|
298
|
+
connectAccount: _connectAccount,
|
299
|
+
close: close,
|
300
|
+
hasBindAccount: hasBindAccount,
|
301
|
+
onLogout: _onLogout,
|
302
|
+
expanded: config.expandAccount,
|
303
|
+
onExpand: value => {
|
304
|
+
const cloneConfig = (0, _cloneDeep.default)(config);
|
305
|
+
cloneConfig.expandAccount = value;
|
306
|
+
setConfig(cloneConfig);
|
390
307
|
}
|
391
|
-
}),
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
}), !(0, _isEmpty.default)(masterSiteInfo) && !!switchDid && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
|
403
|
-
className: "session-manager-menu-item",
|
404
|
-
onClick: _onSwitchDid,
|
405
|
-
"aria-label": translation.switchDid,
|
406
|
-
"data-cy": "sessionManager-switch-trigger",
|
407
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
|
408
|
-
component: _Switch.default,
|
409
|
-
className: "session-manager-menu-icon"
|
410
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
|
411
|
-
sx: {
|
412
|
-
whiteSpace: 'normal',
|
413
|
-
wordBreak: 'break-all'
|
414
|
-
},
|
415
|
-
children: [translation.switchTo, session.provider === 'federated' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Link, {
|
416
|
-
mx: 1,
|
417
|
-
href: currentSiteInfo.appUrl,
|
418
|
-
underline: "hover",
|
419
|
-
target: "_blank",
|
420
|
-
title: currentSiteInfo.appName,
|
421
|
-
"aria-label": "Open current site url",
|
422
|
-
children: currentSiteInfo.appName
|
423
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Link, {
|
424
|
-
mx: 1,
|
425
|
-
href: masterSiteInfo.appUrl,
|
426
|
-
underline: "hover",
|
427
|
-
target: "_blank",
|
428
|
-
title: masterSiteInfo.appName,
|
429
|
-
"aria-label": "Open federated master site url",
|
430
|
-
children: masterSiteInfo.appName
|
431
|
-
}), translation.account]
|
432
|
-
})]
|
433
|
-
}), !!switchProfile && hasBindWallet && session.provider !== 'federated' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
|
434
|
-
className: "session-manager-menu-item",
|
435
|
-
onClick: _onSwitchProfile,
|
436
|
-
"aria-label": translation.switchProfile,
|
437
|
-
"data-cy": "sessionManager-switch-profile-trigger",
|
438
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
|
439
|
-
component: _PersonOutline.default,
|
440
|
-
className: "session-manager-menu-icon"
|
441
|
-
}), translation.switchProfile]
|
442
|
-
}), !!switchPassport && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
|
443
|
-
className: "session-manager-menu-item",
|
444
|
-
onClick: _onSwitchPassport,
|
445
|
-
"aria-label": translation.switchPassport,
|
446
|
-
"data-cy": "sessionManager-switch-passport-trigger",
|
447
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
|
448
|
-
component: _VpnKeyOutlined.default,
|
449
|
-
className: "session-manager-menu-icon"
|
450
|
-
}), translation.switchPassport]
|
451
|
-
}), oauthConfigList.length > 0 && !hasBindAccount && session.provider !== 'federated' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
|
452
|
-
className: "session-manager-menu-item",
|
453
|
-
onClick: _onBindWallet,
|
454
|
-
"aria-label": !isRawWalletAccount ? "".concat(translation.bind, "DID Wallet") : "".concat(translation.bind).concat(translation.thirdParty),
|
455
|
-
"data-cy": "sessionManager-bind-trigger",
|
456
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
|
457
|
-
component: _Link.default,
|
458
|
-
className: "session-manager-menu-icon"
|
459
|
-
}), !isRawWalletAccount ? "".concat(translation.bind, "DID Wallet") : "".concat(translation.bind).concat(translation.thirdParty)]
|
460
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
|
461
|
-
className: "session-manager-menu-item",
|
462
|
-
onClick: _onLogout,
|
463
|
-
disabled: disableLogout,
|
464
|
-
"aria-label": "Logout account",
|
465
|
-
"data-cy": "sessionManager-logout-trigger",
|
466
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
|
467
|
-
component: _Disconnect.default,
|
468
|
-
className: "session-manager-menu-icon"
|
469
|
-
}), translation.disconnect]
|
470
|
-
})]
|
308
|
+
}), showManageBlocklet ? [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}, "divider"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_manageBlocklet.default, {
|
309
|
+
menu: menu,
|
310
|
+
menuRender: menuRender,
|
311
|
+
locale: locale,
|
312
|
+
expanded: config.expandBlocklet,
|
313
|
+
onExpand: value => {
|
314
|
+
const cloneConfig = (0, _cloneDeep.default)(config);
|
315
|
+
cloneConfig.expandBlocklet = value;
|
316
|
+
setConfig(cloneConfig);
|
317
|
+
}
|
318
|
+
}, "manageBlocklet")] : null]
|
471
319
|
})
|
472
320
|
})]
|
473
321
|
});
|
@@ -475,7 +323,7 @@ function SessionManager(_ref) {
|
|
475
323
|
SessionManager.propTypes = {
|
476
324
|
session: _propTypes.default.shape({
|
477
325
|
federatedMaster: _propTypes.default.object,
|
478
|
-
provider: _propTypes.default.oneOf(['wallet', '
|
326
|
+
provider: _propTypes.default.oneOf(['wallet', 'auth0', '']),
|
479
327
|
user: _propTypes.default.shape({
|
480
328
|
did: _propTypes.default.string.isRequired,
|
481
329
|
role: _propTypes.default.string.isRequired,
|
@@ -519,7 +367,8 @@ SessionManager.propTypes = {
|
|
519
367
|
menu: _propTypes.default.array,
|
520
368
|
menuRender: _propTypes.default.func,
|
521
369
|
dark: _propTypes.default.bool,
|
522
|
-
size: _propTypes.default.number
|
370
|
+
size: _propTypes.default.number,
|
371
|
+
showManageBlocklet: _propTypes.default.bool
|
523
372
|
};
|
524
373
|
SessionManager.defaultProps = {
|
525
374
|
locale: 'en',
|
@@ -538,7 +387,8 @@ SessionManager.defaultProps = {
|
|
538
387
|
onSwitchPassport: _noop.default,
|
539
388
|
onBindWallet: _noop.default,
|
540
389
|
dark: false,
|
541
|
-
size: 24
|
390
|
+
size: 24,
|
391
|
+
showManageBlocklet: true
|
542
392
|
};
|
543
393
|
var _default = SessionManager;
|
544
394
|
exports.default = _default;
|