@arcblock/ux 2.9.91 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (337) hide show
  1. package/lib/ActionButton/index.js +36 -48
  2. package/lib/ActivityIndicator/index.js +122 -75
  3. package/lib/Address/compact-text.js +48 -66
  4. package/lib/Address/did-address.js +114 -87
  5. package/lib/Address/index.js +15 -27
  6. package/lib/Address/responsive-did-address.js +48 -50
  7. package/lib/Alert/index.js +58 -52
  8. package/lib/AnimationWaiter/index.js +123 -69
  9. package/lib/Async/index.js +8 -22
  10. package/lib/Avatar/did-motif.js +38 -52
  11. package/lib/Avatar/etherscan-blockies.js +4 -10
  12. package/lib/Avatar/index.js +71 -77
  13. package/lib/Badge/index.js +49 -56
  14. package/lib/Blocklet/blocklet.js +181 -97
  15. package/lib/Blocklet/index.js +4 -24
  16. package/lib/Blocklet/utils.js +50 -13
  17. package/lib/BlockletContext/index.js +21 -31
  18. package/lib/BlockletNFT/index.js +255 -115
  19. package/lib/Button/index.js +5 -11
  20. package/lib/Button/wrap.js +45 -56
  21. package/lib/ButtonGroup/index.js +3 -9
  22. package/lib/CardSelector/index.js +67 -43
  23. package/lib/Center/index.js +19 -20
  24. package/lib/ClickToCopy/copy-button.js +37 -50
  25. package/lib/ClickToCopy/hook.js +10 -18
  26. package/lib/ClickToCopy/index.js +54 -66
  27. package/lib/CodeBlock/LightBox.js +84 -11
  28. package/lib/CodeBlock/index.js +175 -101
  29. package/lib/Colors/index.js +3 -20
  30. package/lib/Colors/themes/default.js +1 -7
  31. package/lib/Colors/themes/temp.js +1 -7
  32. package/lib/ContactForm/index.js +95 -60
  33. package/lib/CookieConsent/index.js +58 -52
  34. package/lib/CountDown/index.js +90 -59
  35. package/lib/DID/index.js +80 -96
  36. package/lib/Datatable/CustomToolbar.js +188 -137
  37. package/lib/Datatable/DatatableContext.js +14 -21
  38. package/lib/Datatable/TableSearch.js +99 -58
  39. package/lib/Datatable/index.js +312 -139
  40. package/lib/Datatable/utils.js +9 -17
  41. package/lib/Dialog/confirm.js +46 -58
  42. package/lib/Dialog/dialog.js +110 -66
  43. package/lib/Dialog/index.js +4 -27
  44. package/lib/Dialog/use-confirm.js +40 -65
  45. package/lib/DidLogo/index.js +14 -22
  46. package/lib/DriftBot/index.js +34 -19
  47. package/lib/Earth/index.js +214 -110
  48. package/lib/Earth/util.js +6 -19
  49. package/lib/Empty/index.js +33 -38
  50. package/lib/ErrorBoundary/fallback.js +45 -43
  51. package/lib/ErrorBoundary/index.js +1 -16
  52. package/lib/Footer/index.js +96 -48
  53. package/lib/Header/auto-hidden.js +28 -31
  54. package/lib/Header/header.js +151 -69
  55. package/lib/Header/index.js +2 -20
  56. package/lib/Header/responsive-header.js +67 -60
  57. package/lib/Icon/image.js +41 -45
  58. package/lib/Icon/index.js +51 -53
  59. package/lib/Img/index.js +77 -88
  60. package/lib/InfoRow/index.js +66 -48
  61. package/lib/Layout/dashboard/external-link.js +38 -53
  62. package/lib/Layout/dashboard/full-page.js +27 -41
  63. package/lib/Layout/dashboard/index.js +177 -132
  64. package/lib/Layout/dashboard/sidebar.js +164 -61
  65. package/lib/Layout/dashboard-legacy/header.js +119 -66
  66. package/lib/Layout/dashboard-legacy/index.js +90 -79
  67. package/lib/Layout/dashboard-legacy/sidebar.js +95 -62
  68. package/lib/Layout/index.js +200 -106
  69. package/lib/LoadingMask/index.js +31 -38
  70. package/lib/Locale/browser-lang.js +2 -8
  71. package/lib/Locale/context.js +46 -69
  72. package/lib/Locale/languages.js +6 -15
  73. package/lib/Locale/selector.js +116 -92
  74. package/lib/Locale/util.js +7 -16
  75. package/lib/Logo/index.js +54 -57
  76. package/lib/Metric/index.js +103 -40
  77. package/lib/NFTDisplay/aspect-ratio-container.js +33 -40
  78. package/lib/NFTDisplay/broken.js +68 -52
  79. package/lib/NFTDisplay/index.js +140 -129
  80. package/lib/NFTDisplay/loading.js +14 -13
  81. package/lib/NFTDisplay/svg-embedder/img.js +18 -33
  82. package/lib/NFTDisplay/svg-embedder/inline-svg.js +28 -32
  83. package/lib/NavMenu/index.js +2 -13
  84. package/lib/NavMenu/nav-menu.js +133 -148
  85. package/lib/NavMenu/style.js +179 -12
  86. package/lib/PageScroller/index.js +82 -93
  87. package/lib/PageScroller/story/FifthComponent.js +4 -10
  88. package/lib/PageScroller/story/FirstComponent.js +4 -10
  89. package/lib/PageScroller/story/FourthComponent.js +4 -10
  90. package/lib/PageScroller/story/FullPage.js +21 -28
  91. package/lib/PageScroller/story/PageContain.js +23 -30
  92. package/lib/PageScroller/story/SecondComponent.js +4 -10
  93. package/lib/PageScroller/story/ThirdComponent.js +4 -10
  94. package/lib/PageScroller/usePrevValue.js +4 -11
  95. package/lib/Passport/index.js +2 -9
  96. package/lib/Passport/passport.js +38 -51
  97. package/lib/PoweredByArcBlock/index.js +19 -33
  98. package/lib/PricingTable/PricingPlan.js +90 -34
  99. package/lib/PricingTable/index.js +28 -26
  100. package/lib/QRCode/index.js +38 -50
  101. package/lib/RelativeTime/index.js +44 -59
  102. package/lib/Result/common.js +85 -107
  103. package/lib/Result/index.js +22 -34
  104. package/lib/Result/result.js +35 -41
  105. package/lib/Result/translations.js +1 -7
  106. package/lib/Screenshot/BaseScreenshot/index.js +65 -43
  107. package/lib/Screenshot/BaseScreenshot/shells/Macbook.js +17 -27
  108. package/lib/Screenshot/BaseScreenshot/shells/Phone.js +14 -25
  109. package/lib/Screenshot/index.js +103 -92
  110. package/lib/SessionBlocklet/index.js +125 -143
  111. package/lib/SessionManager/index.js +2 -9
  112. package/lib/SessionPermission/index.js +13 -23
  113. package/lib/SessionUser/components/logged-in.js +139 -158
  114. package/lib/SessionUser/components/session-user-item.js +44 -58
  115. package/lib/SessionUser/components/session-user-switch.js +133 -152
  116. package/lib/SessionUser/components/un-login.js +27 -35
  117. package/lib/SessionUser/components/user-info.js +62 -74
  118. package/lib/SessionUser/index.js +26 -34
  119. package/lib/SessionUser/libs/translation.js +1 -7
  120. package/lib/SessionUser/libs/utils.js +13 -34
  121. package/lib/Sparkline/index.js +4 -10
  122. package/lib/Spinner/index.js +11 -17
  123. package/lib/SplitButton/index.js +72 -68
  124. package/lib/Success/index.js +28 -34
  125. package/lib/Switch/index.js +64 -75
  126. package/lib/Tabs/index.js +84 -103
  127. package/lib/Tag/index.js +52 -56
  128. package/lib/TextCollapse/index.js +57 -50
  129. package/lib/Theme/index.js +8 -47
  130. package/lib/Theme/theme-provider.js +19 -26
  131. package/lib/Theme/theme.js +49 -62
  132. package/lib/Toast/index.js +41 -73
  133. package/lib/Typography/index.js +44 -55
  134. package/lib/Util/constant.js +16 -22
  135. package/lib/Util/deprecate.js +14 -26
  136. package/lib/Util/federated.js +16 -38
  137. package/lib/Util/index.js +63 -113
  138. package/lib/Util/passport.js +23 -33
  139. package/lib/Util/wallet.js +5 -14
  140. package/lib/Video/index.js +34 -34
  141. package/lib/Wallet/Action.js +72 -49
  142. package/lib/Wallet/Download.js +132 -115
  143. package/lib/Wallet/Open.js +26 -25
  144. package/lib/WalletOSIcon/index.js +33 -42
  145. package/lib/WebWalletSWKeeper/index.js +42 -55
  146. package/lib/WechatPrompt/index.js +53 -33
  147. package/lib/index.js +38 -265
  148. package/lib/withTheme/index.js +53 -33
  149. package/lib/withTracker/error_boundary.js +7 -18
  150. package/lib/withTracker/index.js +25 -34
  151. package/package.json +9 -316
  152. package/src/WalletOSIcon/index.jsx +1 -1
  153. package/es/ActionButton/index.js +0 -99
  154. package/es/ActivityIndicator/index.js +0 -180
  155. package/es/Address/compact-text.js +0 -105
  156. package/es/Address/did-address.js +0 -222
  157. package/es/Address/index.js +0 -23
  158. package/es/Address/responsive-did-address.js +0 -87
  159. package/es/Alert/index.js +0 -134
  160. package/es/AnimationWaiter/default-animation.json +0 -1
  161. package/es/AnimationWaiter/index.js +0 -240
  162. package/es/Async/index.js +0 -38
  163. package/es/Avatar/did-motif.js +0 -68
  164. package/es/Avatar/etherscan-blockies.js +0 -83
  165. package/es/Avatar/index.js +0 -179
  166. package/es/Badge/index.js +0 -98
  167. package/es/Blocklet/blocklet.js +0 -298
  168. package/es/Blocklet/index.js +0 -4
  169. package/es/Blocklet/utils.js +0 -52
  170. package/es/BlockletContext/index.js +0 -65
  171. package/es/BlockletNFT/index.js +0 -412
  172. package/es/Button/index.js +0 -8
  173. package/es/Button/wrap.js +0 -140
  174. package/es/ButtonGroup/index.js +0 -6
  175. package/es/CardSelector/index.js +0 -149
  176. package/es/Center/index.js +0 -41
  177. package/es/ClickToCopy/copy-button.js +0 -72
  178. package/es/ClickToCopy/hook.js +0 -39
  179. package/es/ClickToCopy/index.js +0 -92
  180. package/es/CodeBlock/LightBox.js +0 -85
  181. package/es/CodeBlock/index.js +0 -222
  182. package/es/Colors/index.js +0 -3
  183. package/es/Colors/themes/default.js +0 -77
  184. package/es/Colors/themes/temp.js +0 -41
  185. package/es/ContactForm/index.js +0 -230
  186. package/es/CookieConsent/index.js +0 -113
  187. package/es/CountDown/index.js +0 -178
  188. package/es/DID/index.js +0 -249
  189. package/es/Datatable/CustomToolbar.js +0 -396
  190. package/es/Datatable/DatatableContext.js +0 -34
  191. package/es/Datatable/TableSearch.js +0 -166
  192. package/es/Datatable/index.js +0 -629
  193. package/es/Datatable/utils.js +0 -132
  194. package/es/Dialog/confirm.js +0 -123
  195. package/es/Dialog/dialog.js +0 -201
  196. package/es/Dialog/index.js +0 -4
  197. package/es/Dialog/types.d.ts +0 -17
  198. package/es/Dialog/use-confirm.js +0 -133
  199. package/es/DidLogo/index.js +0 -31
  200. package/es/DriftBot/index.js +0 -70
  201. package/es/Earth/countries.json +0 -8057
  202. package/es/Earth/index.js +0 -521
  203. package/es/Earth/util.js +0 -51
  204. package/es/Empty/index.js +0 -65
  205. package/es/ErrorBoundary/fallback.js +0 -73
  206. package/es/ErrorBoundary/index.js +0 -1
  207. package/es/Footer/index.js +0 -172
  208. package/es/Header/auto-hidden.js +0 -35
  209. package/es/Header/header.js +0 -223
  210. package/es/Header/index.js +0 -2
  211. package/es/Header/responsive-header.js +0 -146
  212. package/es/Icon/image.js +0 -65
  213. package/es/Icon/index.js +0 -84
  214. package/es/Img/index.js +0 -218
  215. package/es/InfoRow/index.js +0 -87
  216. package/es/Layout/dashboard/external-link.js +0 -58
  217. package/es/Layout/dashboard/full-page.js +0 -53
  218. package/es/Layout/dashboard/index.js +0 -282
  219. package/es/Layout/dashboard/sidebar.js +0 -209
  220. package/es/Layout/dashboard-legacy/header.js +0 -174
  221. package/es/Layout/dashboard-legacy/index.js +0 -148
  222. package/es/Layout/dashboard-legacy/sidebar.js +0 -129
  223. package/es/Layout/index.js +0 -335
  224. package/es/LoadingMask/index.js +0 -102
  225. package/es/Locale/browser-lang.js +0 -52
  226. package/es/Locale/context.js +0 -139
  227. package/es/Locale/languages.js +0 -60
  228. package/es/Locale/selector.js +0 -186
  229. package/es/Locale/util.js +0 -21
  230. package/es/Logo/images/logo-dark-text.svg +0 -3
  231. package/es/Logo/images/logo-dark-top.svg +0 -6
  232. package/es/Logo/images/logo-light-text.svg +0 -3
  233. package/es/Logo/images/logo-light-top.svg +0 -6
  234. package/es/Logo/index.js +0 -136
  235. package/es/Metric/index.js +0 -132
  236. package/es/NFTDisplay/NFTBroken.svg +0 -34
  237. package/es/NFTDisplay/README.md +0 -59
  238. package/es/NFTDisplay/aspect-ratio-container.js +0 -39
  239. package/es/NFTDisplay/broken.js +0 -132
  240. package/es/NFTDisplay/demo/data/asset-state-display-url.json +0 -7
  241. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-1-1.json +0 -10
  242. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-374-130.json +0 -10
  243. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-with-foreign-object.json +0 -20
  244. package/es/NFTDisplay/demo/data/asset-state-svg.json +0 -29
  245. package/es/NFTDisplay/demo/data/asset-state-url.json +0 -10
  246. package/es/NFTDisplay/index.js +0 -328
  247. package/es/NFTDisplay/loading.js +0 -18
  248. package/es/NFTDisplay/svg-embedder/img.js +0 -45
  249. package/es/NFTDisplay/svg-embedder/inline-svg.js +0 -39
  250. package/es/NavMenu/index.js +0 -2
  251. package/es/NavMenu/nav-menu.js +0 -358
  252. package/es/NavMenu/style.js +0 -181
  253. package/es/PageScroller/index.js +0 -286
  254. package/es/PageScroller/story/FifthComponent.js +0 -9
  255. package/es/PageScroller/story/FirstComponent.js +0 -9
  256. package/es/PageScroller/story/FourthComponent.js +0 -12
  257. package/es/PageScroller/story/FullPage.js +0 -47
  258. package/es/PageScroller/story/PageContain.js +0 -59
  259. package/es/PageScroller/story/SecondComponent.js +0 -9
  260. package/es/PageScroller/story/ThirdComponent.js +0 -9
  261. package/es/PageScroller/story/index.css +0 -115
  262. package/es/PageScroller/usePrevValue.js +0 -9
  263. package/es/Passport/index.js +0 -2
  264. package/es/Passport/passport.js +0 -103
  265. package/es/PoweredByArcBlock/index.js +0 -31
  266. package/es/PricingTable/PricingPlan.js +0 -124
  267. package/es/PricingTable/index.js +0 -53
  268. package/es/QRCode/index.js +0 -73
  269. package/es/RelativeTime/index.js +0 -107
  270. package/es/Result/common.js +0 -140
  271. package/es/Result/demo/fixtures/result-image-404.svg +0 -1
  272. package/es/Result/index.js +0 -33
  273. package/es/Result/result.js +0 -59
  274. package/es/Result/translations.js +0 -54
  275. package/es/Screenshot/BaseScreenshot/index.js +0 -91
  276. package/es/Screenshot/BaseScreenshot/shells/Macbook.js +0 -51
  277. package/es/Screenshot/BaseScreenshot/shells/Phone.js +0 -36
  278. package/es/Screenshot/demo/images/bg-00.jpg +0 -0
  279. package/es/Screenshot/demo/images/bg-01.jpg +0 -0
  280. package/es/Screenshot/demo/images/bg-02.jpg +0 -0
  281. package/es/Screenshot/demo/images/bg-03.jpg +0 -0
  282. package/es/Screenshot/demo/images/bg-04.jpg +0 -0
  283. package/es/Screenshot/demo/images/bg-05.jpg +0 -0
  284. package/es/Screenshot/demo/images/bg-06.jpg +0 -0
  285. package/es/Screenshot/demo/images/bg-07.jpg +0 -0
  286. package/es/Screenshot/demo/images/bg-08.jpg +0 -0
  287. package/es/Screenshot/demo/images/bg-09.jpg +0 -0
  288. package/es/Screenshot/devices.css +0 -1366
  289. package/es/Screenshot/index.js +0 -299
  290. package/es/SessionBlocklet/index.js +0 -173
  291. package/es/SessionManager/index.js +0 -2
  292. package/es/SessionPermission/index.js +0 -28
  293. package/es/SessionUser/components/logged-in.js +0 -229
  294. package/es/SessionUser/components/session-user-item.js +0 -102
  295. package/es/SessionUser/components/session-user-switch.js +0 -223
  296. package/es/SessionUser/components/un-login.js +0 -64
  297. package/es/SessionUser/components/user-info.js +0 -167
  298. package/es/SessionUser/index.js +0 -49
  299. package/es/SessionUser/libs/translation.js +0 -19
  300. package/es/SessionUser/libs/utils.js +0 -29
  301. package/es/Sparkline/index.js +0 -193
  302. package/es/Spinner/index.js +0 -28
  303. package/es/SplitButton/index.js +0 -145
  304. package/es/Success/index.js +0 -175
  305. package/es/Switch/index.js +0 -96
  306. package/es/Tabs/index.js +0 -214
  307. package/es/Tag/index.js +0 -108
  308. package/es/TextCollapse/index.js +0 -92
  309. package/es/Theme/index.js +0 -16
  310. package/es/Theme/theme-provider.js +0 -39
  311. package/es/Theme/theme.js +0 -145
  312. package/es/Toast/index.js +0 -97
  313. package/es/Typography/index.js +0 -95
  314. package/es/Util/constant.js +0 -42
  315. package/es/Util/deprecate.js +0 -28
  316. package/es/Util/federated.js +0 -91
  317. package/es/Util/index.js +0 -363
  318. package/es/Util/passport.js +0 -62
  319. package/es/Util/wallet.js +0 -32
  320. package/es/Video/index.js +0 -89
  321. package/es/Wallet/Action.js +0 -119
  322. package/es/Wallet/Download.js +0 -331
  323. package/es/Wallet/Open.js +0 -45
  324. package/es/Wallet/images/abtwallet.png +0 -0
  325. package/es/Wallet/images/android_download.svg +0 -23
  326. package/es/Wallet/images/app-store.svg +0 -20
  327. package/es/Wallet/images/google-play.svg +0 -70
  328. package/es/WalletOSIcon/index.js +0 -82
  329. package/es/WebWalletSWKeeper/index.js +0 -117
  330. package/es/WechatPrompt/images/android.png +0 -0
  331. package/es/WechatPrompt/images/ios.png +0 -0
  332. package/es/WechatPrompt/index.js +0 -88
  333. package/es/index.js +0 -38
  334. package/es/withTheme/index.js +0 -69
  335. package/es/withTracker/README.md +0 -34
  336. package/es/withTracker/error_boundary.js +0 -34
  337. package/es/withTracker/index.js +0 -55
@@ -1,167 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { Box, Chip, Typography } from '@mui/material';
3
- import { Icon } from '@iconify/react';
4
- import SwapHorizRoundedIcon from '@iconify-icons/material-symbols/swap-horiz-rounded';
5
- import ArrowRightAltRoundedIcon from '@iconify-icons/material-symbols/arrow-right-alt-rounded';
6
- import { useCreation, useMemoizedFn } from 'ahooks';
7
- import noop from 'lodash/noop';
8
- import DidAvatar from '../../Avatar';
9
- import { getUserAvatar } from '../../Util';
10
- import SessionUserSwitch from './session-user-switch';
11
- import { temp as colors } from '../../Colors';
12
- import { getWallet } from '../libs/utils';
13
- import { translations } from '../libs/translation';
14
- import { translate } from '../../Locale/util';
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- import { jsxs as _jsxs } from "react/jsx-runtime";
17
- export default function UserInfo({
18
- session,
19
- onSwitchPassport,
20
- onSwitchAccount,
21
- onBindWallet,
22
- onSwitchProfile,
23
- locale,
24
- isBlocklet
25
- }) {
26
- const t = useMemoizedFn((key, data = {}) => {
27
- return translate(translations, key, locale, 'en', data);
28
- });
29
- const avatar = getUserAvatar(session.user?.avatar?.replace(/\s/g, encodeURIComponent(' ')), 64);
30
- const currentRole = useCreation(() => session.user?.passports?.find(item => item.name === session.user.role), [session?.user?.passports, session?.user?.role]);
31
- const hasBindWallet = useCreation(() => {
32
- return getWallet(session?.user);
33
- }, [session?.user]);
34
- return /*#__PURE__*/_jsxs(Box, {
35
- sx: {
36
- py: 2,
37
- px: 0.5,
38
- pb: 1,
39
- display: 'flex',
40
- flexDirection: 'column',
41
- gap: 1.5
42
- },
43
- children: [/*#__PURE__*/_jsxs(Box, {
44
- sx: {
45
- display: 'flex',
46
- justifyContent: 'space-between',
47
- alignItems: 'center',
48
- gap: 1,
49
- px: 2
50
- },
51
- children: [/*#__PURE__*/_jsxs(Box, {
52
- sx: {
53
- display: 'flex',
54
- alignItems: 'center',
55
- gap: 1.5
56
- },
57
- children: [/*#__PURE__*/_jsx(Box, {
58
- onClick: isBlocklet ? noop : onSwitchProfile,
59
- "data-cy": "sessionManager-switch-profile-trigger",
60
- sx: {
61
- cursor: isBlocklet ? 'default' : 'pointer',
62
- position: 'relative',
63
- borderRadius: '100%',
64
- overflow: 'hidden',
65
- fontSize: 0,
66
- flexShrink: 0,
67
- '&:hover': isBlocklet ? {} : {
68
- '&::after': {
69
- content: `"${t('switch')}"`,
70
- position: 'absolute',
71
- bottom: 0,
72
- background: 'rgba(0, 0, 0, 0.2)',
73
- left: 0,
74
- right: 0,
75
- height: '2.2em',
76
- color: 'white',
77
- textAlign: 'center',
78
- fontSize: '12px',
79
- lineHeight: '2em'
80
- }
81
- }
82
- },
83
- children: /*#__PURE__*/_jsx(DidAvatar, {
84
- variant: "circle",
85
- did: session.user.did,
86
- src: avatar,
87
- size: 48,
88
- shape: "circle",
89
- sx: {
90
- cursor: isBlocklet ? 'unset' : 'pointer'
91
- }
92
- })
93
- }), /*#__PURE__*/_jsx(Typography, {
94
- variant: "h6",
95
- sx: {
96
- wordBreak: 'break-word'
97
- },
98
- children: session.user.fullName
99
- })]
100
- }), /*#__PURE__*/_jsx(Chip, {
101
- label: currentRole?.title || session.user?.role.toUpperCase(),
102
- size: "small",
103
- variant: "outlined",
104
- clickable: true,
105
- sx: {
106
- flexShrink: 0,
107
- fontWeight: 'bold',
108
- fontSize: '12px',
109
- color: colors.textBase,
110
- borderColor: colors.borderBase,
111
- pr: 1,
112
- pl: 0.5,
113
- '&:active': {
114
- boxShadow: 'none'
115
- }
116
- },
117
- deleteIcon: /*#__PURE__*/_jsx(Icon, {
118
- icon: SwapHorizRoundedIcon,
119
- color: colors.textBase
120
- }),
121
- onDelete: onSwitchPassport,
122
- onClick: onSwitchPassport,
123
- "data-cy": "sessionManager-switch-passport-trigger"
124
- })]
125
- }), /*#__PURE__*/_jsx(SessionUserSwitch, {
126
- session: session,
127
- onSwitch: onSwitchAccount,
128
- isBlocklet: isBlocklet,
129
- locale: locale
130
- }), !hasBindWallet ? /*#__PURE__*/_jsxs(Box, {
131
- sx: {
132
- color: colors.primaryBase,
133
- backgroundColor: colors.surfacePrimarySubtitle,
134
- borderRadius: 1,
135
- display: 'flex',
136
- justifyContent: 'space-between',
137
- alignItems: 'center',
138
- fontSize: 12,
139
- py: 0.75,
140
- px: 1.5,
141
- cursor: 'pointer',
142
- mt: -0.75
143
- },
144
- onClick: onBindWallet,
145
- "data-cy": "sessionManager-bind-trigger",
146
- children: [t('connectDIDWallet'), /*#__PURE__*/_jsx(Icon, {
147
- icon: ArrowRightAltRoundedIcon,
148
- color: colors.primaryBase,
149
- fontSize: 16
150
- })]
151
- }) : null]
152
- });
153
- }
154
- UserInfo.propTypes = {
155
- session: PropTypes.object.isRequired,
156
- onSwitchPassport: PropTypes.func.isRequired,
157
- onSwitchAccount: PropTypes.func.isRequired,
158
- onBindWallet: PropTypes.func.isRequired,
159
- onSwitchProfile: PropTypes.func,
160
- locale: PropTypes.string,
161
- isBlocklet: PropTypes.bool
162
- };
163
- UserInfo.defaultProps = {
164
- locale: 'en',
165
- isBlocklet: true,
166
- onSwitchProfile: noop
167
- };
@@ -1,49 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import noop from 'lodash/noop';
3
- import { useCreation } from 'ahooks';
4
- import LoggedIn from './components/logged-in';
5
- import UnLogin from './components/un-login';
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- export default function SessionUser({
8
- session,
9
- onBindWallet,
10
- locale,
11
- size
12
- }) {
13
- const isBlocklet = useCreation(() => {
14
- return !!globalThis?.blocklet;
15
- });
16
- if (session.user) {
17
- return /*#__PURE__*/_jsx(LoggedIn, {
18
- isBlocklet: isBlocklet,
19
- session: session,
20
- onBindWallet: onBindWallet,
21
- locale: locale,
22
- size: size
23
- });
24
- }
25
- return /*#__PURE__*/_jsx(UnLogin, {
26
- session: session,
27
- isBlocklet: isBlocklet,
28
- locale: locale,
29
- size: size
30
- });
31
- }
32
- SessionUser.propTypes = {
33
- session: PropTypes.shape({
34
- user: PropTypes.shape({
35
- did: PropTypes.string.isRequired,
36
- fullName: PropTypes.string.isRequired,
37
- avatar: PropTypes.string.isRequired,
38
- email: PropTypes.string
39
- })
40
- }).isRequired,
41
- onBindWallet: PropTypes.func,
42
- locale: PropTypes.string,
43
- size: PropTypes.number
44
- };
45
- SessionUser.defaultProps = {
46
- onBindWallet: noop,
47
- locale: 'en',
48
- size: 24
49
- };
@@ -1,19 +0,0 @@
1
- /* eslint-disable import/prefer-default-export */
2
- export const translations = {
3
- en: {
4
- connectDIDWallet: 'Connect your DID Wallet for enhanced security',
5
- switch: 'Switch',
6
- profile: 'Profile',
7
- dashboard: 'Dashboard',
8
- logout: 'Sign Out',
9
- addAnotherAccount: 'Add another account'
10
- },
11
- zh: {
12
- connectDIDWallet: '连接你的 DID Wallet 获得更高的安全性',
13
- switch: '切换',
14
- profile: '个人中心',
15
- dashboard: '控制台',
16
- logout: '退出登录',
17
- addAnotherAccount: '添加账户'
18
- }
19
- };
@@ -1,29 +0,0 @@
1
- export const getSourceAppPid = user => user?.sourceAppPid;
2
- export const getCurrentAppPid = user => user?.sourceAppPid || window?.blocklet?.appPid;
3
- export function getPermanentDid(user) {
4
- return user?.did;
5
- }
6
- export function getConnectedAccounts(user) {
7
- return user?.connectedAccounts || user?.extraConfigs?.connectedAccounts || [];
8
- }
9
- export function getSourceProvider(user) {
10
- return user?.sourceProvider || user?.extraConfigs?.sourceProvider || 'wallet';
11
- }
12
- export function getSourceProviders(user) {
13
- const connectedAccounts = getConnectedAccounts(user);
14
- return connectedAccounts.map(item => item.provider);
15
- }
16
- export function getConnectedDids(user) {
17
- const connectedAccounts = getConnectedAccounts(user);
18
- const didList = connectedAccounts.map(item => item.did);
19
- return didList;
20
- }
21
- export function getWallet(user) {
22
- const connectedAccounts = getConnectedAccounts(user);
23
- const walletAccount = connectedAccounts.find(item => item.provider === 'wallet');
24
- return walletAccount;
25
- }
26
- export function getWalletDid(user) {
27
- const walletAccount = getWallet(user);
28
- return walletAccount?.did;
29
- }
@@ -1,193 +0,0 @@
1
- /* eslint-disable guard-for-in */
2
- /* eslint-disable no-restricted-syntax */
3
- // origin: https://github.com/fnando/sparkline
4
- function getY(max, height, diff, value) {
5
- return parseFloat((height - value * height / max + diff).toFixed(2));
6
- }
7
- function removeChildren(svg) {
8
- [...svg.querySelectorAll('*')].forEach(element => svg.removeChild(element));
9
- }
10
- function defaultFetch(entry) {
11
- return entry.value;
12
- }
13
- function buildElement(tag, attrs) {
14
- const element = document.createElementNS('http://www.w3.org/2000/svg', tag);
15
- for (const name in attrs) {
16
- element.setAttribute(name, attrs[name]);
17
- }
18
- return element;
19
- }
20
- export default function sparkline(svg, entries, options) {
21
- removeChildren(svg);
22
- if (entries.length <= 1) {
23
- return;
24
- }
25
-
26
- // eslint-disable-next-line no-param-reassign
27
- options = options || {};
28
- if (typeof entries[0] === 'number') {
29
- // eslint-disable-next-line no-param-reassign
30
- entries = entries.map(entry => {
31
- return {
32
- value: entry
33
- };
34
- });
35
- }
36
-
37
- // This function will be called whenever the mouse moves
38
- // over the SVG. You can use it to render something like a
39
- // tooltip.
40
- const {
41
- onmousemove
42
- } = options;
43
-
44
- // This function will be called whenever the mouse leaves
45
- // the SVG area. You can use it to hide the tooltip.
46
- const {
47
- onmouseout
48
- } = options;
49
-
50
- // Should we run in interactive mode? If yes, this will handle the
51
- // cursor and spot position when moving the mouse.
52
- const interactive = 'interactive' in options ? options.interactive : !!onmousemove;
53
-
54
- // Define how big should be the spot area.
55
- const spotRadius = options.spotRadius || 2;
56
- const spotDiameter = spotRadius * 2;
57
-
58
- // Define how wide should be the cursor area.
59
- const cursorWidth = options.cursorWidth || 2;
60
-
61
- // Get the stroke width; this is used to compute the
62
- // rendering offset.
63
- const strokeWidth = parseFloat(svg.attributes['stroke-width'].value);
64
-
65
- // By default, data must be formatted as an array of numbers or
66
- // an array of objects with the value key (like `[{value: 1}]`).
67
- // You can set a custom function to return data for a different
68
- // data structure.
69
- const fetch = options.fetch || defaultFetch;
70
-
71
- // Retrieve only values, easing the find for the maximum value.
72
- const values = entries.map(entry => fetch(entry));
73
-
74
- // The rendering width will account for the spot size.
75
- const width = parseFloat(svg.attributes.width.value) - spotDiameter * 2;
76
-
77
- // Get the SVG element's full height.
78
- // This is used
79
- const fullHeight = parseFloat(svg.attributes.height.value);
80
-
81
- // The rendering height accounts for stroke width and spot size.
82
- const height = fullHeight - strokeWidth * 2 - spotDiameter;
83
-
84
- // The maximum value. This is used to calculate the Y coord of
85
- // each sparkline datapoint.
86
- const max = Math.max(...values) === 0 ? 1 : Math.max(...values);
87
-
88
- // Some arbitrary value to remove the cursor and spot out of
89
- // the viewing canvas.
90
- const offscreen = -1000;
91
-
92
- // Cache the last item index.
93
- const lastItemIndex = values.length - 1;
94
-
95
- // Calculate the X coord base step.
96
- const offset = width / lastItemIndex;
97
-
98
- // Hold all datapoints, which is whatever we got as the entry plus
99
- // x/y coords and the index.
100
- const datapoints = [];
101
-
102
- // Hold the line coordinates.
103
- const pathY = getY(max, height, strokeWidth + spotRadius, values[0]);
104
- let pathCoords = `M${spotDiameter} ${pathY}`;
105
- values.forEach((value, index) => {
106
- const x = index * offset + spotDiameter;
107
- const y = getY(max, height, strokeWidth + spotRadius, value);
108
- datapoints.push(Object.assign({}, entries[index], {
109
- index,
110
- x,
111
- y
112
- }));
113
- pathCoords += ` L ${x} ${y}`;
114
- });
115
- const path = buildElement('path', {
116
- class: 'sparkline--line',
117
- d: pathCoords,
118
- fill: 'none'
119
- });
120
- const fillCoords = `${pathCoords} V ${fullHeight} L ${spotDiameter} ${fullHeight} Z`;
121
- const fill = buildElement('path', {
122
- class: 'sparkline--fill',
123
- d: fillCoords,
124
- stroke: 'none'
125
- });
126
- svg.appendChild(fill);
127
- svg.appendChild(path);
128
- if (!interactive) {
129
- return;
130
- }
131
- const cursor = buildElement('line', {
132
- class: 'sparkline--cursor',
133
- x1: offscreen,
134
- x2: offscreen,
135
- y1: 0,
136
- y2: fullHeight,
137
- 'stroke-width': cursorWidth
138
- });
139
- const spot = buildElement('circle', {
140
- class: 'sparkline--spot',
141
- cx: offscreen,
142
- cy: offscreen,
143
- r: spotRadius
144
- });
145
- svg.appendChild(cursor);
146
- svg.appendChild(spot);
147
- const interactionLayer = buildElement('rect', {
148
- width: svg.attributes.width.value,
149
- height: svg.attributes.height.value,
150
- style: 'fill: transparent; stroke: transparent',
151
- class: 'sparkline--interaction-layer'
152
- });
153
- svg.appendChild(interactionLayer);
154
- interactionLayer.addEventListener('mouseout', event => {
155
- cursor.setAttribute('x1', offscreen);
156
- cursor.setAttribute('x2', offscreen);
157
- spot.setAttribute('cx', offscreen);
158
- if (onmouseout) {
159
- onmouseout(event);
160
- }
161
- });
162
- interactionLayer.addEventListener('mousemove', event => {
163
- const mouseX = event.offsetX;
164
- let nextDataPoint = datapoints.find(entry => {
165
- return entry.x >= mouseX;
166
- });
167
- if (!nextDataPoint) {
168
- nextDataPoint = datapoints[lastItemIndex];
169
- }
170
- const previousDataPoint = datapoints[datapoints.indexOf(nextDataPoint) - 1];
171
- let currentDataPoint;
172
- let halfway;
173
- if (previousDataPoint) {
174
- halfway = previousDataPoint.x + (nextDataPoint.x - previousDataPoint.x) / 2;
175
- currentDataPoint = mouseX >= halfway ? nextDataPoint : previousDataPoint;
176
- } else {
177
- currentDataPoint = nextDataPoint;
178
- }
179
- const {
180
- x
181
- } = currentDataPoint;
182
- const {
183
- y
184
- } = currentDataPoint;
185
- spot.setAttribute('cx', x);
186
- spot.setAttribute('cy', y);
187
- cursor.setAttribute('x1', x);
188
- cursor.setAttribute('x2', x);
189
- if (onmousemove) {
190
- onmousemove(event, currentDataPoint);
191
- }
192
- });
193
- }
@@ -1,28 +0,0 @@
1
- import CircularProgress from '@mui/material/CircularProgress';
2
- import { withDeprecated } from '../Util/deprecate';
3
-
4
- /**
5
- * Spinner
6
- *
7
- * 之前的 Spinner 实现由内外 2 个环构成, 现在改为基于 @mui/material/CircularProgress 的实现
8
- *
9
- * - 之前 size prop 是 array 类型, 需要与 CircularProgress#size 兼容
10
- * - color 默认使用 #4598fa, 如果调用方传入了 color prop 或 style#color, 则默认 color 被覆盖
11
- */
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- function Spinner(props) {
14
- const _props = {
15
- ...props
16
- };
17
- // 兼容之前的 size prop (设置外圈/内圈的尺寸)
18
- if (_props.size && Array.isArray(_props.size)) {
19
- [_props.size] = _props.size;
20
- }
21
- return /*#__PURE__*/_jsx(CircularProgress, {
22
- ..._props
23
- });
24
- }
25
- export default withDeprecated(Spinner, {
26
- name: 'Spinner',
27
- alternative: '@mui/material/CircularProgress'
28
- });
@@ -1,145 +0,0 @@
1
- import { useState, useRef, isValidElement } from 'react';
2
- import PropTypes from 'prop-types';
3
- import ExpandMore from '@mui/icons-material/ExpandMore';
4
- import Popper from '@mui/material/Popper';
5
- import Paper from '@mui/material/Paper';
6
- import ClickAwayListener from '@mui/material/ClickAwayListener';
7
- import MenuList from '@mui/material/MenuList';
8
- import MenuItem from '@mui/material/MenuItem';
9
- import ButtonGroup from '@mui/material/ButtonGroup';
10
- import Button from '@mui/material/Button';
11
- import noop from 'lodash/noop';
12
- import { styled } from '../Theme';
13
-
14
- /**
15
- * SplitButton 组件 Props
16
- * @typedef {{
17
- * size?: 'small' | 'medium' | 'large';
18
- * color?: 'primary' | 'secondary' | 'inherit';
19
- * menu?: Array<import('@mui/material').MenuItem> | import('@mui/material').MenuItem;
20
- * children?: JSX.Element | (() => JSX.Element);
21
- * variant?: 'outlined' | 'contained';
22
- * onClick?: () => void;
23
- * menuButtonProps?: import('@mui/material').ButtonProps;
24
- * } & import('@mui/material').ButtonGroupProps } SplitButtonProps
25
- */
26
-
27
- /**
28
- * @description SplitButton allows the user to execute a default action which is bound to a Button or to choose a predefined action from a drop-down list.
29
- * @export
30
- * @param {SplitButtonProps} props
31
- * @return {JSX.Element}
32
- */
33
- import { createElement as _createElement } from "react";
34
- import { jsx as _jsx } from "react/jsx-runtime";
35
- import { jsxs as _jsxs } from "react/jsx-runtime";
36
- import { Fragment as _Fragment } from "react/jsx-runtime";
37
- export default function SplitButton(props) {
38
- const {
39
- size,
40
- color,
41
- menu,
42
- children,
43
- variant,
44
- onClick,
45
- menuButtonProps,
46
- ...rest
47
- } = props;
48
- const [open, setOpen] = useState(false);
49
- const anchorRef = useRef(null);
50
- const menuItems = Array.isArray(menu) ? menu.map((item, index) => /*#__PURE__*/isValidElement(item) ? item : /*#__PURE__*/_createElement(MenuItem, {
51
- ...item,
52
- key: index
53
- })) // eslint-disable-line react/no-array-index-key
54
- : menu;
55
- const onToggle = () => {
56
- setOpen(prevOpen => !prevOpen);
57
- };
58
- const handleClose = e => {
59
- if (anchorRef.current && anchorRef.current.contains(e.target)) {
60
- return;
61
- }
62
- setOpen(false);
63
- };
64
-
65
- // 点击 item 后收起下拉菜单, 如果想要点击 action 后不收起下拉菜单, 可以在 item#onClick 时调用 e.stopPropagation()
66
- const handleItemClick = e => {
67
- if (e.target.closest('.MuiMenuItem-root')) {
68
- setOpen(false);
69
- }
70
- };
71
- return /*#__PURE__*/_jsxs(_Fragment, {
72
- children: [/*#__PURE__*/_jsxs(StyledButtonGroup, {
73
- variant: variant,
74
- size: size,
75
- color: color,
76
- ref: anchorRef,
77
- ...rest,
78
- children: [typeof children === 'function' ? children() : /*#__PURE__*/_jsx(Button, {
79
- onClick: onClick,
80
- color: color,
81
- children: children
82
- }), /*#__PURE__*/_jsx(Button, {
83
- onClick: onToggle,
84
- color: color,
85
- ...menuButtonProps,
86
- "aria-label": "more functions",
87
- children: /*#__PURE__*/_jsx(ExpandMore, {})
88
- })]
89
- }), /*#__PURE__*/_jsx(StyledPopper, {
90
- open: open,
91
- anchorEl: anchorRef.current,
92
- placement: "bottom-end",
93
- disablePortal: false,
94
- children: /*#__PURE__*/_jsx(Paper, {
95
- children: /*#__PURE__*/_jsx(ClickAwayListener, {
96
- onClickAway: handleClose,
97
- children: /*#__PURE__*/_jsx(MenuList, {
98
- onClick: handleItemClick,
99
- children: menuItems
100
- })
101
- })
102
- })
103
- })]
104
- });
105
- }
106
- SplitButton.propTypes = {
107
- size: PropTypes.oneOf(['small', 'medium', 'large']),
108
- color: PropTypes.oneOf(['primary', 'secondary', 'inherit']),
109
- menu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
110
- // 也可以是用于渲染主按钮的 function
111
- children: PropTypes.node,
112
- variant: PropTypes.oneOf(['outlined', 'contained']),
113
- onClick: PropTypes.func,
114
- menuButtonProps: PropTypes.object
115
- };
116
- SplitButton.defaultProps = {
117
- size: 'medium',
118
- color: 'primary',
119
- menu: [],
120
- children: null,
121
- variant: 'contained',
122
- onClick: noop,
123
- menuButtonProps: {}
124
- };
125
- /**
126
- * @type {import('@mui/material').MenuItem}
127
- */
128
- SplitButton.Item = MenuItem;
129
- const StyledButtonGroup = styled(ButtonGroup)`
130
- > .MuiButtonBase-root:last-of-type {
131
- min-width: 2em;
132
- padding-left: 0;
133
- padding-right: 0;
134
- }
135
- `;
136
- const StyledPopper = styled(Popper)`
137
- z-index: ${props => props.theme.zIndex.tooltip};
138
- .MuiList-root {
139
- padding: 4px 0;
140
- }
141
- .MuiListItem-root {
142
- padding-top: 4px;
143
- padding-bottom: 4px;
144
- }
145
- `;