@arcblock/ux 2.8.15 → 2.8.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. package/es/SessionManager/{account-item.js → components/account-item.js} +5 -5
  2. package/es/SessionManager/{add-account-item.js → components/add-account-item.js} +3 -3
  3. package/es/SessionManager/{federated-login-detecter.js → components/federated-login-detecter.js} +5 -5
  4. package/es/SessionManager/{manage-accounts.js → components/manage-accounts.js} +12 -9
  5. package/es/SessionManager/{manage-blocklet.js → components/manage-blocklet.js} +2 -2
  6. package/es/SessionManager/{menu-accordion.js → components/menu-accordion.js} +2 -2
  7. package/es/SessionManager/components/responsive-popper.js +24 -0
  8. package/es/SessionManager/components/user-drawer.js +65 -0
  9. package/es/SessionManager/{user-info.js → components/user-info.js} +7 -7
  10. package/es/SessionManager/{user-popper.js → components/user-popper.js} +5 -4
  11. package/es/SessionManager/index.js +9 -9
  12. package/lib/SessionManager/{account-item.js → components/account-item.js} +5 -5
  13. package/lib/SessionManager/{add-account-item.js → components/add-account-item.js} +3 -3
  14. package/lib/SessionManager/{federated-login-detecter.js → components/federated-login-detecter.js} +5 -5
  15. package/lib/SessionManager/{manage-accounts.js → components/manage-accounts.js} +12 -9
  16. package/lib/SessionManager/{manage-blocklet.js → components/manage-blocklet.js} +2 -2
  17. package/lib/SessionManager/{menu-accordion.js → components/menu-accordion.js} +2 -2
  18. package/lib/SessionManager/components/responsive-popper.js +34 -0
  19. package/lib/SessionManager/components/user-drawer.js +72 -0
  20. package/lib/SessionManager/{user-info.js → components/user-info.js} +7 -7
  21. package/lib/SessionManager/{user-popper.js → components/user-popper.js} +5 -2
  22. package/lib/SessionManager/index.js +9 -9
  23. package/package.json +4 -4
  24. package/src/SessionManager/{account-item.jsx → components/account-item.jsx} +5 -5
  25. package/src/SessionManager/{add-account-item.jsx → components/add-account-item.jsx} +3 -3
  26. package/src/SessionManager/{federated-login-detecter.jsx → components/federated-login-detecter.jsx} +5 -5
  27. package/src/SessionManager/{manage-accounts.jsx → components/manage-accounts.jsx} +32 -27
  28. package/src/SessionManager/{manage-blocklet.jsx → components/manage-blocklet.jsx} +2 -2
  29. package/src/SessionManager/{menu-accordion.jsx → components/menu-accordion.jsx} +2 -2
  30. package/src/SessionManager/components/responsive-popper.jsx +26 -0
  31. package/src/SessionManager/components/user-drawer.jsx +54 -0
  32. package/src/SessionManager/{user-info.jsx → components/user-info.jsx} +7 -7
  33. package/src/SessionManager/{user-popper.jsx → components/user-popper.jsx} +5 -4
  34. package/src/SessionManager/index.jsx +10 -10
  35. /package/es/SessionManager/{use-config.js → hooks/use-config.js} +0 -0
  36. /package/es/SessionManager/{translation.js → libs/translation.js} +0 -0
  37. /package/es/SessionManager/{utils.js → libs/utils.js} +0 -0
  38. /package/lib/SessionManager/{use-config.js → hooks/use-config.js} +0 -0
  39. /package/lib/SessionManager/{translation.js → libs/translation.js} +0 -0
  40. /package/lib/SessionManager/{utils.js → libs/utils.js} +0 -0
  41. /package/src/SessionManager/{use-config.js → hooks/use-config.js} +0 -0
  42. /package/src/SessionManager/{translation.js → libs/translation.js} +0 -0
  43. /package/src/SessionManager/{utils.js → libs/utils.js} +0 -0
@@ -9,11 +9,11 @@ import ApiIcon from '@iconify-icons/mdi/api';
9
9
  import Auth0Icon from '@iconify-icons/logos/auth0-icon';
10
10
  import TrashCanOutlineIcon from '@iconify-icons/mdi/trash-can-outline';
11
11
  import { useCreation, useMemoizedFn } from 'ahooks';
12
- import Avatar from '../Avatar';
13
- import DID from '../DID';
14
- import { translate } from '../Locale/util';
15
- import { translations } from './translation';
16
- import { getFederatedEnabled } from '../Util/federated';
12
+ import Avatar from '../../Avatar';
13
+ import DID from '../../DID';
14
+ import { translate } from '../../Locale/util';
15
+ import { translations } from '../libs/translation';
16
+ import { getFederatedEnabled } from '../../Util/federated';
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
18
  import { Fragment as _Fragment } from "react/jsx-runtime";
19
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -3,9 +3,9 @@ import PropTypes from 'prop-types';
3
3
  import { MenuItem, Typography } from '@mui/material';
4
4
  import AddIcon from '@iconify-icons/ion/ios-add-circle-outline';
5
5
  import { useCreation, useMemoizedFn } from 'ahooks';
6
- import { translate } from '../Locale/util';
7
- import { translations } from './translation';
8
- import { getApps } from '../Util/federated';
6
+ import { translate } from '../../Locale/util';
7
+ import { translations } from '../libs/translation';
8
+ import { getApps } from '../../Util/federated';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
11
11
  export default function AddAccountItem({
@@ -7,11 +7,11 @@ import ShieldCheckIcon from '@iconify-icons/mdi/shield-check';
7
7
  import { Icon } from '@iconify/react';
8
8
  import { useCreation, useReactive } from 'ahooks';
9
9
  import UserPopper from './user-popper';
10
- import DidAvatar from '../Avatar';
11
- import DidAddress from '../Address';
12
- import Button from '../Button';
13
- import Toast from '../Toast';
14
- import { getUserAvatar } from '../Util';
10
+ import DidAvatar from '../../Avatar';
11
+ import DidAddress from '../../Address';
12
+ import Button from '../../Button';
13
+ import Toast from '../../Toast';
14
+ import { getUserAvatar } from '../../Util';
15
15
  import { Fragment as _Fragment } from "react/jsx-runtime";
16
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -9,10 +9,10 @@ import DisconnectIcon from '@arcblock/icons/lib/Disconnect';
9
9
  import noop from 'lodash/noop';
10
10
  import AccountItem from './account-item';
11
11
  import MenuAccordion from './menu-accordion';
12
- import { translations } from './translation';
13
- import { translate } from '../Locale/util';
14
- import { useConfirm } from '../Dialog/confirm';
15
- import { getSourceProvider } from './utils';
12
+ import { translations } from '../libs/translation';
13
+ import { translate } from '../../Locale/util';
14
+ import { useConfirm } from '../../Dialog/confirm';
15
+ import { getSourceProvider } from '../libs/utils';
16
16
  import AddAccountItem from './add-account-item';
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
18
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -30,7 +30,8 @@ export default function ManageAccounts({
30
30
  expanded,
31
31
  onExpand,
32
32
  accounts,
33
- deleteAccount
33
+ deleteAccount,
34
+ hideLogout
34
35
  }) {
35
36
  const {
36
37
  bindOAuth,
@@ -167,7 +168,7 @@ export default function ManageAccounts({
167
168
  height: 24,
168
169
  className: "session-manager-menu-icon"
169
170
  }), !isRawWalletAccount ? `${t('bind')}DID Wallet` : `${t('bind')}${t('thirdParty')}`]
170
- }), /*#__PURE__*/_jsxs(MenuItem, {
171
+ }), !hideLogout ? /*#__PURE__*/_jsxs(MenuItem, {
171
172
  className: "session-manager-menu-item",
172
173
  onClick: _onLogout,
173
174
  disabled: disableLogout,
@@ -188,7 +189,7 @@ export default function ManageAccounts({
188
189
  component: DisconnectIcon,
189
190
  className: "session-manager-menu-icon"
190
191
  }), t('disconnect')]
191
- })]
192
+ }) : null]
192
193
  }), confirmHolder]
193
194
  });
194
195
  }
@@ -205,12 +206,14 @@ ManageAccounts.propTypes = {
205
206
  expanded: PropTypes.bool,
206
207
  onExpand: PropTypes.func,
207
208
  accounts: PropTypes.array.isRequired,
208
- deleteAccount: PropTypes.func.isRequired
209
+ deleteAccount: PropTypes.func.isRequired,
210
+ hideLogout: PropTypes.bool
209
211
  };
210
212
  ManageAccounts.defaultProps = {
211
213
  locale: 'en',
212
214
  hasBindAccount: false,
213
215
  disableLogout: false,
214
216
  expanded: true,
215
- onExpand: noop
217
+ onExpand: noop,
218
+ hideLogout: false
216
219
  };
@@ -5,8 +5,8 @@ import { Icon } from '@iconify/react';
5
5
  import AppsIcon from '@iconify-icons/mdi/apps';
6
6
  import { MenuItem, SvgIcon } from '@mui/material';
7
7
  import MenuAccordion from './menu-accordion';
8
- import { translate } from '../Locale/util';
9
- import { translations } from './translation';
8
+ import { translate } from '../../Locale/util';
9
+ import { translations } from '../libs/translation';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { Fragment as _Fragment } from "react/jsx-runtime";
12
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -5,8 +5,8 @@ import { Icon } from '@iconify/react';
5
5
  import isEmpty from 'lodash/isEmpty';
6
6
  import isNil from 'lodash/isNil';
7
7
  import { useCreation, useMemoizedFn } from 'ahooks';
8
- import { translate } from '../Locale/util';
9
- import { translations } from './translation';
8
+ import { translate } from '../../Locale/util';
9
+ import { translations } from '../libs/translation';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  function isEmptyNode(node) {
@@ -0,0 +1,24 @@
1
+ import { useCreation, useSize } from 'ahooks';
2
+ import UserPopper from './user-popper';
3
+ import UserDrawer from './user-drawer';
4
+ import { useTheme } from '../../Theme';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export default function ResponsivePopper(props) {
7
+ const theme = useTheme();
8
+ const size = useSize(document.body);
9
+ const isMobile = useCreation(() => {
10
+ if (size?.width <= theme.breakpoints.values.sm) {
11
+ return true;
12
+ }
13
+ return false;
14
+ }, [theme, size]);
15
+ const WrapContainer = useCreation(() => {
16
+ if (isMobile) {
17
+ return UserDrawer;
18
+ }
19
+ return UserPopper;
20
+ }, [isMobile]);
21
+ return /*#__PURE__*/_jsx(WrapContainer, {
22
+ ...props
23
+ });
24
+ }
@@ -0,0 +1,65 @@
1
+ import PropTypes from 'prop-types';
2
+ import { IconButton, Drawer } from '@mui/material';
3
+ import CloseIcon from '@iconify-icons/mdi/close';
4
+ import { Icon } from '@iconify/react';
5
+ import noop from 'lodash/noop';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ export default function UserDrawer({
9
+ children,
10
+ open,
11
+ onOpen,
12
+ onClose
13
+ }) {
14
+ return /*#__PURE__*/_jsxs(Drawer, {
15
+ anchor: "right",
16
+ open: open,
17
+ onClose: onClose,
18
+ onOpen: onOpen,
19
+ sx: theme => ({
20
+ '& .MuiPaper-root': {
21
+ width: '100%'
22
+ },
23
+ '& .MuiChip-root .MuiChip-icon': {
24
+ color: theme.palette.success.main
25
+ },
26
+ '& .session-manager-menu-item': {
27
+ padding: '15px',
28
+ color: '#777',
29
+ fontSize: '16px',
30
+ '&:hover': {
31
+ backgroundColor: '#fbfbfb'
32
+ }
33
+ },
34
+ '& .session-manager-menu-icon': {
35
+ color: '#999',
36
+ marginRight: '8px'
37
+ }
38
+ }),
39
+ children: [/*#__PURE__*/_jsx(IconButton, {
40
+ sx: {
41
+ cursor: 'pointer',
42
+ position: 'absolute',
43
+ right: '8px',
44
+ top: '8px',
45
+ zIndex: 1
46
+ },
47
+ onClick: onClose,
48
+ children: /*#__PURE__*/_jsx(Icon, {
49
+ icon: CloseIcon,
50
+ width: 28,
51
+ height: 28
52
+ })
53
+ }), children]
54
+ });
55
+ }
56
+ UserDrawer.propTypes = {
57
+ children: PropTypes.any.isRequired,
58
+ open: PropTypes.bool.isRequired,
59
+ onOpen: PropTypes.func,
60
+ onClose: PropTypes.func
61
+ };
62
+ UserDrawer.defaultProps = {
63
+ onOpen: noop,
64
+ onClose: noop
65
+ };
@@ -5,13 +5,13 @@ import ShieldCheckIcon from '@iconify-icons/mdi/shield-check';
5
5
  import ExpandMoreIcon from '@iconify-icons/mdi/expand-more';
6
6
  import { Icon } from '@iconify/react';
7
7
  import { useCreation, useMemoizedFn } from 'ahooks';
8
- import DidAvatar from '../Avatar';
9
- import DidAddress from '../Address';
10
- import DID from '../DID';
11
- import { getUserAvatar } from '../Util';
12
- import { t as translate } from '../Locale/util';
13
- import { translations } from './translation';
14
- import Typography from '../Typography';
8
+ import DidAvatar from '../../Avatar';
9
+ import DidAddress from '../../Address';
10
+ import DID from '../../DID';
11
+ import { getUserAvatar } from '../../Util';
12
+ import { t as translate } from '../../Locale/util';
13
+ import { translations } from '../libs/translation';
14
+ import Typography from '../../Typography';
15
15
  import { jsx as _jsx } from "react/jsx-runtime";
16
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
17
  export default function UserInfo({
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
2
2
  import { IconButton, Paper, Popper, ClickAwayListener } from '@mui/material';
3
3
  import CloseIcon from '@iconify-icons/mdi/close';
4
4
  import { Icon } from '@iconify/react';
5
- import { styled } from '../Theme';
5
+ import { styled } from '../../Theme';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  import { Fragment as _Fragment } from "react/jsx-runtime";
8
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -30,6 +30,9 @@ export default function UserPopper({
30
30
  maxHeight: 'calc(100vh - 80px)',
31
31
  '& .MuiChip-root .MuiChip-icon': {
32
32
  color: theme.palette.success.main
33
+ },
34
+ '& .MuiList-root': {
35
+ width: '320px'
33
36
  }
34
37
  }), dark && {
35
38
  backgroundColor: '#27282c',
@@ -91,9 +94,7 @@ const StyledPopper = styled(Popper)`
91
94
  }) => {
92
95
  return theme.zIndex.tooltip;
93
96
  }};
94
- .MuiList-root {
95
- width: 320px;
96
- }
97
+
97
98
  .session-manager-menu-item {
98
99
  padding: 15px;
99
100
  color: #777;
@@ -9,15 +9,15 @@ import cloneDeep from 'lodash/cloneDeep';
9
9
  import { useLatest, useMemoizedFn } from 'ahooks';
10
10
  import DidAvatar from '../Avatar';
11
11
  import { getUserAvatar, sleep } from '../Util';
12
- import FederatedLoginDetecter from './federated-login-detecter';
13
- import UserPopper from './user-popper';
14
- import UserInfo from './user-info';
12
+ import FederatedLoginDetecter from './components/federated-login-detecter';
13
+ import UserInfo from './components/user-info';
14
+ import ResponsivePopper from './components/responsive-popper';
15
15
  import { translate } from '../Locale/util';
16
- import ManageAccounts from './manage-accounts';
17
- import ManageBlocklet from './manage-blocklet';
18
- import { translations } from './translation';
19
- import { getConnectedAccounts, getSourceProvider } from './utils';
20
- import useConfig from './use-config';
16
+ import ManageAccounts from './components/manage-accounts';
17
+ import ManageBlocklet from './components/manage-blocklet';
18
+ import { translations } from './libs/translation';
19
+ import { getConnectedAccounts, getSourceProvider } from './libs/utils';
20
+ import useConfig from './hooks/use-config';
21
21
  import { getCurrentApp, getFederatedApp } from '../Util/federated';
22
22
  import { jsx as _jsx } from "react/jsx-runtime";
23
23
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -252,7 +252,7 @@ function SessionManager({
252
252
  size: size,
253
253
  shape: "circle"
254
254
  })
255
- }), /*#__PURE__*/_jsx(UserPopper, {
255
+ }), /*#__PURE__*/_jsx(ResponsivePopper, {
256
256
  open: userOpen,
257
257
  onClose: onCloseUser,
258
258
  anchorEl: userAnchorRef.current,
@@ -15,11 +15,11 @@ var _api = _interopRequireDefault(require("@iconify-icons/mdi/api"));
15
15
  var _auth0Icon = _interopRequireDefault(require("@iconify-icons/logos/auth0-icon"));
16
16
  var _trashCanOutline = _interopRequireDefault(require("@iconify-icons/mdi/trash-can-outline"));
17
17
  var _ahooks = require("ahooks");
18
- var _Avatar = _interopRequireDefault(require("../Avatar"));
19
- var _DID = _interopRequireDefault(require("../DID"));
20
- var _util = require("../Locale/util");
21
- var _translation = require("./translation");
22
- var _federated = require("../Util/federated");
18
+ var _Avatar = _interopRequireDefault(require("../../Avatar"));
19
+ var _DID = _interopRequireDefault(require("../../DID"));
20
+ var _util = require("../../Locale/util");
21
+ var _translation = require("../libs/translation");
22
+ var _federated = require("../../Util/federated");
23
23
  var _jsxRuntime = require("react/jsx-runtime");
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
  function AccountItem(_ref) {
@@ -9,9 +9,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _material = require("@mui/material");
10
10
  var _iosAddCircleOutline = _interopRequireDefault(require("@iconify-icons/ion/ios-add-circle-outline"));
11
11
  var _ahooks = require("ahooks");
12
- var _util = require("../Locale/util");
13
- var _translation = require("./translation");
14
- var _federated = require("../Util/federated");
12
+ var _util = require("../../Locale/util");
13
+ var _translation = require("../libs/translation");
14
+ var _federated = require("../../Util/federated");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  function AddAccountItem(_ref) {
@@ -13,11 +13,11 @@ var _shieldCheck = _interopRequireDefault(require("@iconify-icons/mdi/shield-che
13
13
  var _react2 = require("@iconify/react");
14
14
  var _ahooks = require("ahooks");
15
15
  var _userPopper = _interopRequireDefault(require("./user-popper"));
16
- var _Avatar = _interopRequireDefault(require("../Avatar"));
17
- var _Address = _interopRequireDefault(require("../Address"));
18
- var _Button = _interopRequireDefault(require("../Button"));
19
- var _Toast = _interopRequireDefault(require("../Toast"));
20
- var _Util = require("../Util");
16
+ var _Avatar = _interopRequireDefault(require("../../Avatar"));
17
+ var _Address = _interopRequireDefault(require("../../Address"));
18
+ var _Button = _interopRequireDefault(require("../../Button"));
19
+ var _Toast = _interopRequireDefault(require("../../Toast"));
20
+ var _Util = require("../../Util");
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
  const translations = {
@@ -14,10 +14,10 @@ var _Disconnect = _interopRequireDefault(require("@arcblock/icons/lib/Disconnect
14
14
  var _noop = _interopRequireDefault(require("lodash/noop"));
15
15
  var _accountItem = _interopRequireDefault(require("./account-item"));
16
16
  var _menuAccordion = _interopRequireDefault(require("./menu-accordion"));
17
- var _translation = require("./translation");
18
- var _util = require("../Locale/util");
19
- var _confirm = require("../Dialog/confirm");
20
- var _utils = require("./utils");
17
+ var _translation = require("../libs/translation");
18
+ var _util = require("../../Locale/util");
19
+ var _confirm = require("../../Dialog/confirm");
20
+ var _utils = require("../libs/utils");
21
21
  var _addAccountItem = _interopRequireDefault(require("./add-account-item"));
22
22
  var _jsxRuntime = require("react/jsx-runtime");
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -40,7 +40,8 @@ function ManageAccounts(_ref) {
40
40
  expanded,
41
41
  onExpand,
42
42
  accounts,
43
- deleteAccount
43
+ deleteAccount,
44
+ hideLogout
44
45
  } = _ref;
45
46
  const {
46
47
  bindOAuth,
@@ -180,7 +181,7 @@ function ManageAccounts(_ref) {
180
181
  height: 24,
181
182
  className: "session-manager-menu-icon"
182
183
  }), !isRawWalletAccount ? "".concat(t('bind'), "DID Wallet") : "".concat(t('bind')).concat(t('thirdParty'))]
183
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
184
+ }), !hideLogout ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
184
185
  className: "session-manager-menu-item",
185
186
  onClick: _onLogout,
186
187
  disabled: disableLogout,
@@ -201,7 +202,7 @@ function ManageAccounts(_ref) {
201
202
  component: _Disconnect.default,
202
203
  className: "session-manager-menu-icon"
203
204
  }), t('disconnect')]
204
- })]
205
+ }) : null]
205
206
  }), confirmHolder]
206
207
  });
207
208
  }
@@ -218,12 +219,14 @@ ManageAccounts.propTypes = {
218
219
  expanded: _propTypes.default.bool,
219
220
  onExpand: _propTypes.default.func,
220
221
  accounts: _propTypes.default.array.isRequired,
221
- deleteAccount: _propTypes.default.func.isRequired
222
+ deleteAccount: _propTypes.default.func.isRequired,
223
+ hideLogout: _propTypes.default.bool
222
224
  };
223
225
  ManageAccounts.defaultProps = {
224
226
  locale: 'en',
225
227
  hasBindAccount: false,
226
228
  disableLogout: false,
227
229
  expanded: true,
228
- onExpand: _noop.default
230
+ onExpand: _noop.default,
231
+ hideLogout: false
229
232
  };
@@ -10,8 +10,8 @@ var _react = require("@iconify/react");
10
10
  var _apps = _interopRequireDefault(require("@iconify-icons/mdi/apps"));
11
11
  var _material = require("@mui/material");
12
12
  var _menuAccordion = _interopRequireDefault(require("./menu-accordion"));
13
- var _util = require("../Locale/util");
14
- var _translation = require("./translation");
13
+ var _util = require("../../Locale/util");
14
+ var _translation = require("../libs/translation");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
16
  const _excluded = ["svgIcon"];
17
17
  /* eslint-disable react/no-array-index-key */
@@ -11,8 +11,8 @@ var _react = require("@iconify/react");
11
11
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
12
12
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
13
13
  var _ahooks = require("ahooks");
14
- var _util = require("../Locale/util");
15
- var _translation = require("./translation");
14
+ var _util = require("../../Locale/util");
15
+ var _translation = require("../libs/translation");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
18
  function isEmptyNode(node) {
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ResponsivePopper;
7
+ var _ahooks = require("ahooks");
8
+ var _userPopper = _interopRequireDefault(require("./user-popper"));
9
+ var _userDrawer = _interopRequireDefault(require("./user-drawer"));
10
+ var _Theme = require("../../Theme");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ 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; }
14
+ 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; }
15
+ 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; }
16
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
+ 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); }
18
+ function ResponsivePopper(props) {
19
+ const theme = (0, _Theme.useTheme)();
20
+ const size = (0, _ahooks.useSize)(document.body);
21
+ const isMobile = (0, _ahooks.useCreation)(() => {
22
+ if ((size === null || size === void 0 ? void 0 : size.width) <= theme.breakpoints.values.sm) {
23
+ return true;
24
+ }
25
+ return false;
26
+ }, [theme, size]);
27
+ const WrapContainer = (0, _ahooks.useCreation)(() => {
28
+ if (isMobile) {
29
+ return _userDrawer.default;
30
+ }
31
+ return _userPopper.default;
32
+ }, [isMobile]);
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrapContainer, _objectSpread({}, props));
34
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = UserDrawer;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _material = require("@mui/material");
9
+ var _close = _interopRequireDefault(require("@iconify-icons/mdi/close"));
10
+ var _react = require("@iconify/react");
11
+ var _noop = _interopRequireDefault(require("lodash/noop"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function UserDrawer(_ref) {
15
+ let {
16
+ children,
17
+ open,
18
+ onOpen,
19
+ onClose
20
+ } = _ref;
21
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Drawer, {
22
+ anchor: "right",
23
+ open: open,
24
+ onClose: onClose,
25
+ onOpen: onOpen,
26
+ sx: theme => ({
27
+ '& .MuiPaper-root': {
28
+ width: '100%'
29
+ },
30
+ '& .MuiChip-root .MuiChip-icon': {
31
+ color: theme.palette.success.main
32
+ },
33
+ '& .session-manager-menu-item': {
34
+ padding: '15px',
35
+ color: '#777',
36
+ fontSize: '16px',
37
+ '&:hover': {
38
+ backgroundColor: '#fbfbfb'
39
+ }
40
+ },
41
+ '& .session-manager-menu-icon': {
42
+ color: '#999',
43
+ marginRight: '8px'
44
+ }
45
+ }),
46
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
47
+ sx: {
48
+ cursor: 'pointer',
49
+ position: 'absolute',
50
+ right: '8px',
51
+ top: '8px',
52
+ zIndex: 1
53
+ },
54
+ onClick: onClose,
55
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Icon, {
56
+ icon: _close.default,
57
+ width: 28,
58
+ height: 28
59
+ })
60
+ }), children]
61
+ });
62
+ }
63
+ UserDrawer.propTypes = {
64
+ children: _propTypes.default.any.isRequired,
65
+ open: _propTypes.default.bool.isRequired,
66
+ onOpen: _propTypes.default.func,
67
+ onClose: _propTypes.default.func
68
+ };
69
+ UserDrawer.defaultProps = {
70
+ onOpen: _noop.default,
71
+ onClose: _noop.default
72
+ };
@@ -9,13 +9,13 @@ var _shieldCheck = _interopRequireDefault(require("@iconify-icons/mdi/shield-che
9
9
  var _expandMore = _interopRequireDefault(require("@iconify-icons/mdi/expand-more"));
10
10
  var _react = require("@iconify/react");
11
11
  var _ahooks = require("ahooks");
12
- var _Avatar = _interopRequireDefault(require("../Avatar"));
13
- var _Address = _interopRequireDefault(require("../Address"));
14
- var _DID = _interopRequireDefault(require("../DID"));
15
- var _Util = require("../Util");
16
- var _util = require("../Locale/util");
17
- var _translation = require("./translation");
18
- var _Typography = _interopRequireDefault(require("../Typography"));
12
+ var _Avatar = _interopRequireDefault(require("../../Avatar"));
13
+ var _Address = _interopRequireDefault(require("../../Address"));
14
+ var _DID = _interopRequireDefault(require("../../DID"));
15
+ var _Util = require("../../Util");
16
+ var _util = require("../../Locale/util");
17
+ var _translation = require("../libs/translation");
18
+ var _Typography = _interopRequireDefault(require("../../Typography"));
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
  /* eslint-disable react/jsx-no-bind */
@@ -8,7 +8,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _material = require("@mui/material");
9
9
  var _close = _interopRequireDefault(require("@iconify-icons/mdi/close"));
10
10
  var _react = require("@iconify/react");
11
- var _Theme = require("../Theme");
11
+ var _Theme = require("../../Theme");
12
12
  var _jsxRuntime = require("react/jsx-runtime");
13
13
  var _templateObject;
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -38,6 +38,9 @@ function UserPopper(_ref) {
38
38
  maxHeight: 'calc(100vh - 80px)',
39
39
  '& .MuiChip-root .MuiChip-icon': {
40
40
  color: theme.palette.success.main
41
+ },
42
+ '& .MuiList-root': {
43
+ width: '320px'
41
44
  }
42
45
  }), dark && {
43
46
  backgroundColor: '#27282c',
@@ -93,7 +96,7 @@ UserPopper.defaultProps = {
93
96
  onClose: () => {},
94
97
  autoClose: true
95
98
  };
96
- const StyledPopper = (0, _Theme.styled)(_material.Popper)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n z-index: ", ";\n .MuiList-root {\n width: 320px;\n }\n .session-manager-menu-item {\n padding: 15px;\n color: #777;\n font-size: 16px;\n &:hover {\n background-color: #fbfbfb;\n }\n }\n .session-manager-menu-icon {\n color: #999;\n margin-right: 8px;\n }\n"])), _ref2 => {
99
+ const StyledPopper = (0, _Theme.styled)(_material.Popper)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n z-index: ", ";\n\n .session-manager-menu-item {\n padding: 15px;\n color: #777;\n font-size: 16px;\n &:hover {\n background-color: #fbfbfb;\n }\n }\n .session-manager-menu-icon {\n color: #999;\n margin-right: 8px;\n }\n"])), _ref2 => {
97
100
  let {
98
101
  theme
99
102
  } = _ref2;
@@ -13,15 +13,15 @@ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
13
13
  var _ahooks = require("ahooks");
14
14
  var _Avatar = _interopRequireDefault(require("../Avatar"));
15
15
  var _Util = require("../Util");
16
- var _federatedLoginDetecter = _interopRequireDefault(require("./federated-login-detecter"));
17
- var _userPopper = _interopRequireDefault(require("./user-popper"));
18
- var _userInfo = _interopRequireDefault(require("./user-info"));
16
+ var _federatedLoginDetecter = _interopRequireDefault(require("./components/federated-login-detecter"));
17
+ var _userInfo = _interopRequireDefault(require("./components/user-info"));
18
+ var _responsivePopper = _interopRequireDefault(require("./components/responsive-popper"));
19
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"));
20
+ var _manageAccounts = _interopRequireDefault(require("./components/manage-accounts"));
21
+ var _manageBlocklet = _interopRequireDefault(require("./components/manage-blocklet"));
22
+ var _translation = require("./libs/translation");
23
+ var _utils = require("./libs/utils");
24
+ var _useConfig = _interopRequireDefault(require("./hooks/use-config"));
25
25
  var _federated = require("../Util/federated");
26
26
  var _jsxRuntime = require("react/jsx-runtime");
27
27
  const _excluded = ["session", "locale", "showText", "showRole", "switchDid", "switchProfile", "switchPassport", "disableLogout", "onLogin", "onLogout", "onSwitchDid", "onSwitchProfile", "onSwitchPassport", "onBindWallet", "menu", "menuRender", "dark", "size", "showManageBlocklet"];
@@ -268,7 +268,7 @@ function SessionManager(_ref) {
268
268
  size: size,
269
269
  shape: "circle"
270
270
  })
271
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_userPopper.default, {
271
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_responsivePopper.default, {
272
272
  open: userOpen,
273
273
  onClose: onCloseUser,
274
274
  anchorEl: userAnchorRef.current,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/ux",
3
- "version": "2.8.15",
3
+ "version": "2.8.17",
4
4
  "description": "Common used react components for arcblock products",
5
5
  "keywords": [
6
6
  "react",
@@ -322,11 +322,11 @@
322
322
  "peerDependencies": {
323
323
  "react": ">=18.1.0"
324
324
  },
325
- "gitHead": "82cb60b92bddc5dd96309350c542e05580011323",
325
+ "gitHead": "bd7a8f9d5bfbd61bcb0f6ff57de4600d8afded7b",
326
326
  "dependencies": {
327
327
  "@arcblock/did-motif": "^1.1.13",
328
- "@arcblock/icons": "^2.8.15",
329
- "@arcblock/react-hooks": "^2.8.15",
328
+ "@arcblock/icons": "^2.8.17",
329
+ "@arcblock/react-hooks": "^2.8.17",
330
330
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
331
331
  "@emotion/react": "^11.10.4",
332
332
  "@emotion/styled": "^11.10.4",
@@ -10,11 +10,11 @@ import Auth0Icon from '@iconify-icons/logos/auth0-icon';
10
10
  import TrashCanOutlineIcon from '@iconify-icons/mdi/trash-can-outline';
11
11
  import { useCreation, useMemoizedFn } from 'ahooks';
12
12
 
13
- import Avatar from '../Avatar';
14
- import DID from '../DID';
15
- import { translate } from '../Locale/util';
16
- import { translations } from './translation';
17
- import { getFederatedEnabled } from '../Util/federated';
13
+ import Avatar from '../../Avatar';
14
+ import DID from '../../DID';
15
+ import { translate } from '../../Locale/util';
16
+ import { translations } from '../libs/translation';
17
+ import { getFederatedEnabled } from '../../Util/federated';
18
18
 
19
19
  export default function AccountItem({ account, active, onDelete, onChoose, locale }) {
20
20
  const t = useMemoizedFn((key, data = {}) => {
@@ -3,9 +3,9 @@ import PropTypes from 'prop-types';
3
3
  import { MenuItem, Typography } from '@mui/material';
4
4
  import AddIcon from '@iconify-icons/ion/ios-add-circle-outline';
5
5
  import { useCreation, useMemoizedFn } from 'ahooks';
6
- import { translate } from '../Locale/util';
7
- import { translations } from './translation';
8
- import { getApps } from '../Util/federated';
6
+ import { translate } from '../../Locale/util';
7
+ import { translations } from '../libs/translation';
8
+ import { getApps } from '../../Util/federated';
9
9
 
10
10
  export default function AddAccountItem({ onAdd, locale, session }) {
11
11
  const t = useMemoizedFn((key, data = {}) => {
@@ -8,11 +8,11 @@ import { Icon } from '@iconify/react';
8
8
  import { useCreation, useReactive } from 'ahooks';
9
9
 
10
10
  import UserPopper from './user-popper';
11
- import DidAvatar from '../Avatar';
12
- import DidAddress from '../Address';
13
- import Button from '../Button';
14
- import Toast from '../Toast';
15
- import { getUserAvatar } from '../Util';
11
+ import DidAvatar from '../../Avatar';
12
+ import DidAddress from '../../Address';
13
+ import Button from '../../Button';
14
+ import Toast from '../../Toast';
15
+ import { getUserAvatar } from '../../Util';
16
16
 
17
17
  const translations = {
18
18
  en: {
@@ -10,10 +10,10 @@ import noop from 'lodash/noop';
10
10
 
11
11
  import AccountItem from './account-item';
12
12
  import MenuAccordion from './menu-accordion';
13
- import { translations } from './translation';
14
- import { translate } from '../Locale/util';
15
- import { useConfirm } from '../Dialog/confirm';
16
- import { getSourceProvider } from './utils';
13
+ import { translations } from '../libs/translation';
14
+ import { translate } from '../../Locale/util';
15
+ import { useConfirm } from '../../Dialog/confirm';
16
+ import { getSourceProvider } from '../libs/utils';
17
17
  import AddAccountItem from './add-account-item';
18
18
 
19
19
  export default function ManageAccounts({
@@ -30,6 +30,7 @@ export default function ManageAccounts({
30
30
  onExpand,
31
31
  accounts,
32
32
  deleteAccount,
33
+ hideLogout,
33
34
  }) {
34
35
  const { bindOAuth, configs: oauthConfigs } = session.useOAuth();
35
36
  const t = useMemoizedFn((key, data = {}) => {
@@ -169,29 +170,31 @@ export default function ManageAccounts({
169
170
  </MenuItem>
170
171
  )}
171
172
 
172
- <MenuItem
173
- className="session-manager-menu-item"
174
- onClick={_onLogout}
175
- disabled={disableLogout}
176
- aria-label="Logout account"
177
- sx={{
178
- position: 'relative',
179
- }}
180
- data-cy="sessionManager-logout-trigger">
181
- {pageState.logoutLoading ? (
182
- <LinearProgress
183
- sx={{
184
- height: '2px',
185
- position: 'absolute',
186
- top: 0,
187
- left: 0,
188
- right: 0,
189
- }}
190
- />
191
- ) : null}
192
- <SvgIcon component={DisconnectIcon} className="session-manager-menu-icon" />
193
- {t('disconnect')}
194
- </MenuItem>
173
+ {!hideLogout ? (
174
+ <MenuItem
175
+ className="session-manager-menu-item"
176
+ onClick={_onLogout}
177
+ disabled={disableLogout}
178
+ aria-label="Logout account"
179
+ sx={{
180
+ position: 'relative',
181
+ }}
182
+ data-cy="sessionManager-logout-trigger">
183
+ {pageState.logoutLoading ? (
184
+ <LinearProgress
185
+ sx={{
186
+ height: '2px',
187
+ position: 'absolute',
188
+ top: 0,
189
+ left: 0,
190
+ right: 0,
191
+ }}
192
+ />
193
+ ) : null}
194
+ <SvgIcon component={DisconnectIcon} className="session-manager-menu-icon" />
195
+ {t('disconnect')}
196
+ </MenuItem>
197
+ ) : null}
195
198
  </MenuAccordion>
196
199
  {confirmHolder}
197
200
  </>
@@ -212,6 +215,7 @@ ManageAccounts.propTypes = {
212
215
  onExpand: PropTypes.func,
213
216
  accounts: PropTypes.array.isRequired,
214
217
  deleteAccount: PropTypes.func.isRequired,
218
+ hideLogout: PropTypes.bool,
215
219
  };
216
220
 
217
221
  ManageAccounts.defaultProps = {
@@ -220,4 +224,5 @@ ManageAccounts.defaultProps = {
220
224
  disableLogout: false,
221
225
  expanded: true,
222
226
  onExpand: noop,
227
+ hideLogout: false,
223
228
  };
@@ -6,8 +6,8 @@ import AppsIcon from '@iconify-icons/mdi/apps';
6
6
  import { MenuItem, SvgIcon } from '@mui/material';
7
7
 
8
8
  import MenuAccordion from './menu-accordion';
9
- import { translate } from '../Locale/util';
10
- import { translations } from './translation';
9
+ import { translate } from '../../Locale/util';
10
+ import { translations } from '../libs/translation';
11
11
 
12
12
  export default function ManageBlocklet({ menu, menuRender, locale, expanded, onExpand }) {
13
13
  const t = useMemoizedFn((key, data = {}) => {
@@ -5,8 +5,8 @@ import { Icon } from '@iconify/react';
5
5
  import isEmpty from 'lodash/isEmpty';
6
6
  import isNil from 'lodash/isNil';
7
7
  import { useCreation, useMemoizedFn } from 'ahooks';
8
- import { translate } from '../Locale/util';
9
- import { translations } from './translation';
8
+ import { translate } from '../../Locale/util';
9
+ import { translations } from '../libs/translation';
10
10
 
11
11
  function isEmptyNode(node) {
12
12
  if (isNil(node)) {
@@ -0,0 +1,26 @@
1
+ import { useCreation, useSize } from 'ahooks';
2
+
3
+ import UserPopper from './user-popper';
4
+ import UserDrawer from './user-drawer';
5
+ import { useTheme } from '../../Theme';
6
+
7
+ export default function ResponsivePopper(props) {
8
+ const theme = useTheme();
9
+ const size = useSize(document.body);
10
+ const isMobile = useCreation(() => {
11
+ if (size?.width <= theme.breakpoints.values.sm) {
12
+ return true;
13
+ }
14
+ return false;
15
+ }, [theme, size]);
16
+
17
+ const WrapContainer = useCreation(() => {
18
+ if (isMobile) {
19
+ return UserDrawer;
20
+ }
21
+
22
+ return UserPopper;
23
+ }, [isMobile]);
24
+
25
+ return <WrapContainer {...props} />;
26
+ }
@@ -0,0 +1,54 @@
1
+ import PropTypes from 'prop-types';
2
+ import { IconButton, Drawer } from '@mui/material';
3
+ import CloseIcon from '@iconify-icons/mdi/close';
4
+ import { Icon } from '@iconify/react';
5
+ import noop from 'lodash/noop';
6
+
7
+ export default function UserDrawer({ children, open, onOpen, onClose }) {
8
+ return (
9
+ <Drawer
10
+ anchor="right"
11
+ open={open}
12
+ onClose={onClose}
13
+ onOpen={onOpen}
14
+ sx={(theme) => ({
15
+ '& .MuiPaper-root': {
16
+ width: '100%',
17
+ },
18
+ '& .MuiChip-root .MuiChip-icon': {
19
+ color: theme.palette.success.main,
20
+ },
21
+ '& .session-manager-menu-item': {
22
+ padding: '15px',
23
+ color: '#777',
24
+ fontSize: '16px',
25
+ '&:hover': {
26
+ backgroundColor: '#fbfbfb',
27
+ },
28
+ },
29
+ '& .session-manager-menu-icon': {
30
+ color: '#999',
31
+ marginRight: '8px',
32
+ },
33
+ })}>
34
+ <IconButton
35
+ sx={{ cursor: 'pointer', position: 'absolute', right: '8px', top: '8px', zIndex: 1 }}
36
+ onClick={onClose}>
37
+ <Icon icon={CloseIcon} width={28} height={28} />
38
+ </IconButton>
39
+ {children}
40
+ </Drawer>
41
+ );
42
+ }
43
+
44
+ UserDrawer.propTypes = {
45
+ children: PropTypes.any.isRequired,
46
+ open: PropTypes.bool.isRequired,
47
+ onOpen: PropTypes.func,
48
+ onClose: PropTypes.func,
49
+ };
50
+
51
+ UserDrawer.defaultProps = {
52
+ onOpen: noop,
53
+ onClose: noop,
54
+ };
@@ -6,13 +6,13 @@ import ExpandMoreIcon from '@iconify-icons/mdi/expand-more';
6
6
  import { Icon } from '@iconify/react';
7
7
  import { useCreation, useMemoizedFn } from 'ahooks';
8
8
 
9
- import DidAvatar from '../Avatar';
10
- import DidAddress from '../Address';
11
- import DID from '../DID';
12
- import { getUserAvatar } from '../Util';
13
- import { t as translate } from '../Locale/util';
14
- import { translations } from './translation';
15
- import Typography from '../Typography';
9
+ import DidAvatar from '../../Avatar';
10
+ import DidAddress from '../../Address';
11
+ import DID from '../../DID';
12
+ import { getUserAvatar } from '../../Util';
13
+ import { t as translate } from '../../Locale/util';
14
+ import { translations } from '../libs/translation';
15
+ import Typography from '../../Typography';
16
16
 
17
17
  export default function UserInfo({ session, locale, onSwitchProfile, onSwitchPassport, switchProfile, hasBindWallet }) {
18
18
  const t = (key, data = {}) => {
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
2
2
  import { IconButton, Paper, Popper, ClickAwayListener } from '@mui/material';
3
3
  import CloseIcon from '@iconify-icons/mdi/close';
4
4
  import { Icon } from '@iconify/react';
5
- import { styled } from '../Theme';
5
+ import { styled } from '../../Theme';
6
6
 
7
7
  export default function UserPopper({ anchorEl, dark, children, open, onClose, autoClose }) {
8
8
  return (
@@ -20,6 +20,9 @@ export default function UserPopper({ anchorEl, dark, children, open, onClose, au
20
20
  '& .MuiChip-root .MuiChip-icon': {
21
21
  color: theme.palette.success.main,
22
22
  },
23
+ '& .MuiList-root': {
24
+ width: '320px',
25
+ },
23
26
  }),
24
27
  dark && {
25
28
  backgroundColor: '#27282c',
@@ -76,9 +79,7 @@ const StyledPopper = styled(Popper)`
76
79
  z-index: ${({ theme }) => {
77
80
  return theme.zIndex.tooltip;
78
81
  }};
79
- .MuiList-root {
80
- width: 320px;
81
- }
82
+
82
83
  .session-manager-menu-item {
83
84
  padding: 15px;
84
85
  color: #777;
@@ -10,15 +10,15 @@ import { useLatest, useMemoizedFn } from 'ahooks';
10
10
 
11
11
  import DidAvatar from '../Avatar';
12
12
  import { getUserAvatar, sleep } from '../Util';
13
- import FederatedLoginDetecter from './federated-login-detecter';
14
- import UserPopper from './user-popper';
15
- import UserInfo from './user-info';
13
+ import FederatedLoginDetecter from './components/federated-login-detecter';
14
+ import UserInfo from './components/user-info';
15
+ import ResponsivePopper from './components/responsive-popper';
16
16
  import { translate } from '../Locale/util';
17
- import ManageAccounts from './manage-accounts';
18
- import ManageBlocklet from './manage-blocklet';
19
- import { translations } from './translation';
20
- import { getConnectedAccounts, getSourceProvider } from './utils';
21
- import useConfig from './use-config';
17
+ import ManageAccounts from './components/manage-accounts';
18
+ import ManageBlocklet from './components/manage-blocklet';
19
+ import { translations } from './libs/translation';
20
+ import { getConnectedAccounts, getSourceProvider } from './libs/utils';
21
+ import useConfig from './hooks/use-config';
22
22
  import { getCurrentApp, getFederatedApp } from '../Util/federated';
23
23
 
24
24
  function SessionManager({
@@ -226,7 +226,7 @@ function SessionManager({
226
226
  <DidAvatar variant="circle" did={session.user.did} src={avatar} size={size} shape="circle" />
227
227
  </IconButton>
228
228
 
229
- <UserPopper open={userOpen} onClose={onCloseUser} anchorEl={userAnchorRef.current} dark={dark}>
229
+ <ResponsivePopper open={userOpen} onClose={onCloseUser} anchorEl={userAnchorRef.current} dark={dark}>
230
230
  <MenuList sx={{ p: 0 }}>
231
231
  <UserInfo
232
232
  session={session}
@@ -286,7 +286,7 @@ function SessionManager({
286
286
  ]
287
287
  : null}
288
288
  </MenuList>
289
- </UserPopper>
289
+ </ResponsivePopper>
290
290
  </>
291
291
  );
292
292
  }
File without changes
File without changes
File without changes