@arcblock/ux 2.10.44 → 2.10.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/DID/index.js CHANGED
@@ -1,25 +1,26 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getDIDMotifInfo } from '@arcblock/did-motif';
3
- import IconQrCode from '@iconify-icons/material-symbols/qr-code-rounded';
3
+ import { types } from '@ocap/mcrypto';
4
+ import QRCode from 'qrcode.react';
4
5
  import { Icon } from '@iconify/react';
5
- import { Box, Dialog, DialogContent, DialogTitle, Typography } from '@mui/material';
6
+ import IconQrCode from '@iconify-icons/material-symbols/qr-code-rounded';
7
+ import { Box, Dialog, DialogContent, Typography } from '@mui/material';
6
8
  import { useCreation, useMemoizedFn } from 'ahooks';
7
- import QRCode from 'qrcode.react';
8
9
  import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';
9
10
  import Address from '../Address';
10
11
  import Avatar from '../Avatar';
11
12
  import { temp as colors } from '../Colors';
12
13
  import { DID_PREFIX } from '../Util/constant';
13
14
  import { translate } from '../Locale/util';
14
- import { getDIDColor, getFontSize, isEthereumDid } from '../Util';
15
+ import { getDIDColor, isEthereumDid } from '../Util';
15
16
  const translations = {
16
17
  en: {
17
- scanQrcode: 'Scan with DID Wallet to transfer token to here',
18
+ scanQrcode: 'Scan with DID Wallet to view this {role}',
18
19
  download: 'Download',
19
20
  downloadTips: "Don't have DID Wallet ?"
20
21
  },
21
22
  zh: {
22
- scanQrcode: '扫描此二维码,用 DID Wallet 转账',
23
+ scanQrcode: '使用 DID Wallet 扫码查看该 {role}',
23
24
  download: '下载',
24
25
  downloadTips: '没有 DID Wallet ?'
25
26
  }
@@ -45,6 +46,16 @@ const isSquareMotif = roleType => {
45
46
  };
46
47
  return !roles[roleType];
47
48
  };
49
+ const getRoleName = roleType => {
50
+ const [roleName] = Object.entries(types.RoleType).find(item => item[1] === roleType) || [];
51
+ if (roleName) {
52
+ // UpperCase first word, example:
53
+ // ROLE_ACCOUNT -> Account
54
+ // ROLE_APPLICATION -> Application
55
+ return roleName.toLowerCase().replace(/role_(\S)/g, (_, $1) => $1.toUpperCase());
56
+ }
57
+ return 'Address';
58
+ };
48
59
  const getAvatarSize = (didMotifInfo, isEthDid, size) => {
49
60
  if (isEthDid) {
50
61
  return size * 0.75;
@@ -104,24 +115,19 @@ const DID = /*#__PURE__*/forwardRef((props, ref) => {
104
115
  const [open, setOpen] = useState(false);
105
116
  const isEthDid = isEthereumDid(did);
106
117
  const didMotifInfo = isEthDid ? undefined : getDIDMotifInfo(did);
107
- const fontSize = getFontSize(rest.size);
108
- const prepend = [/*#__PURE__*/_jsx("span", {
118
+ const getPrepend = avatarSize => [/*#__PURE__*/_jsx("span", {
109
119
  style: {
110
120
  flex: '0 0 auto',
111
- fontSize,
112
121
  color: getFontColor(did, didMotifInfo, isEthDid)
113
122
  },
114
123
  children: "DID:"
115
124
  }, "prefix-did"), /*#__PURE__*/_jsx("span", {
116
125
  className: "did-address-text",
117
- style: {
118
- fontSize
119
- },
120
126
  children: "ABT:"
121
127
  }, "prefix-abt"), showAvatar && /*#__PURE__*/_jsx(Avatar, {
122
128
  src: "",
123
129
  did: did,
124
- size: getAvatarSize(didMotifInfo, isEthDid, rest.size || 18),
130
+ size: getAvatarSize(didMotifInfo, isEthDid, avatarSize || 18),
125
131
  style: {
126
132
  display: 'inline-flex',
127
133
  alignItems: 'center',
@@ -179,7 +185,7 @@ const DID = /*#__PURE__*/forwardRef((props, ref) => {
179
185
  content: `${DID_PREFIX}${did}`,
180
186
  ...rest,
181
187
  ref: addressRef,
182
- prepend: prepend,
188
+ prepend: getPrepend(rest.size),
183
189
  append: /*#__PURE__*/_jsxs(_Fragment, {
184
190
  children: [showQrcode ? /*#__PURE__*/_jsx(Box, {
185
191
  id: "did-qrcode-button",
@@ -195,20 +201,31 @@ const DID = /*#__PURE__*/forwardRef((props, ref) => {
195
201
  }) : null, rest.append]
196
202
  }),
197
203
  children: did
198
- }), /*#__PURE__*/_jsxs(Dialog, {
204
+ }), /*#__PURE__*/_jsx(Dialog, {
199
205
  open: open,
200
206
  onClose: closeQrCode,
201
207
  maxWidth: "sm",
202
- children: [/*#__PURE__*/_jsx(DialogTitle, {
208
+ PaperProps: {
209
+ sx: {
210
+ boxShadow: 'none',
211
+ borderRadius: '12px'
212
+ }
213
+ },
214
+ children: /*#__PURE__*/_jsxs(DialogContent, {
203
215
  align: "center",
204
- children: /*#__PURE__*/_jsx(Typography, {
205
- variant: "h6",
206
- component: "h3",
207
- children: t('scanQrcode')
208
- })
209
- }), /*#__PURE__*/_jsxs(DialogContent, {
210
- align: 'center',
211
- children: [/*#__PURE__*/_jsx(QRCode
216
+ sx: {
217
+ p: 3
218
+ },
219
+ children: [/*#__PURE__*/_jsx(Typography, {
220
+ sx: {
221
+ mb: 2,
222
+ fontWeight: 500,
223
+ fontSize: 18
224
+ },
225
+ children: t('scanQrcode', {
226
+ role: getRoleName(didMotifInfo?.roleType)
227
+ })
228
+ }), /*#__PURE__*/_jsx(QRCode
212
229
  // eslint-disable-next-line max-len
213
230
  , {
214
231
  value: `abt://abtwallet.io/i?did=${DID_PREFIX}${did}&action=didRecognize&chainID=${chainId || DEFAULT_CHAIN_ID}`,
@@ -217,14 +234,15 @@ const DID = /*#__PURE__*/forwardRef((props, ref) => {
217
234
  level: "M"
218
235
  }), /*#__PURE__*/_jsx(Box, {
219
236
  sx: {
220
- marginTop: 1,
237
+ mt: 1.5,
221
238
  textAlign: 'center'
222
239
  },
223
240
  children: /*#__PURE__*/_jsx(Address, {
224
241
  locale: locale,
225
242
  content: `${DID_PREFIX}${did}`,
226
- prepend: prepend,
243
+ prepend: getPrepend(16),
227
244
  ...rest,
245
+ size: 16,
228
246
  copyable: true,
229
247
  children: did
230
248
  })
@@ -237,7 +255,7 @@ const DID = /*#__PURE__*/forwardRef((props, ref) => {
237
255
  },
238
256
  children: downloadTips
239
257
  })]
240
- })]
258
+ })
241
259
  })]
242
260
  });
243
261
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/ux",
3
- "version": "2.10.44",
3
+ "version": "2.10.45",
4
4
  "description": "Common used react components for arcblock products",
5
5
  "keywords": [
6
6
  "react",
@@ -64,12 +64,12 @@
64
64
  "react": ">=18.2.0",
65
65
  "react-router-dom": ">=6.22.3"
66
66
  },
67
- "gitHead": "35fb53cce48d64d7affbc3023f7d027f0ec93171",
67
+ "gitHead": "f4387cd434dcdf0bab88973b014575613dcb3611",
68
68
  "dependencies": {
69
69
  "@arcblock/did-motif": "^1.1.13",
70
- "@arcblock/icons": "^2.10.44",
71
- "@arcblock/nft-display": "^2.10.44",
72
- "@arcblock/react-hooks": "^2.10.44",
70
+ "@arcblock/icons": "^2.10.45",
71
+ "@arcblock/nft-display": "^2.10.45",
72
+ "@arcblock/react-hooks": "^2.10.45",
73
73
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
74
74
  "@fontsource/inter": "^5.0.16",
75
75
  "@fontsource/ubuntu-mono": "^5.0.18",
package/src/DID/index.tsx CHANGED
@@ -1,9 +1,10 @@
1
1
  import { getDIDMotifInfo } from '@arcblock/did-motif';
2
- import IconQrCode from '@iconify-icons/material-symbols/qr-code-rounded';
2
+ import { types } from '@ocap/mcrypto';
3
+ import QRCode from 'qrcode.react';
3
4
  import { Icon } from '@iconify/react';
4
- import { Box, Dialog, DialogContent, DialogTitle, Typography } from '@mui/material';
5
+ import IconQrCode from '@iconify-icons/material-symbols/qr-code-rounded';
6
+ import { Box, Dialog, DialogContent, Typography } from '@mui/material';
5
7
  import { useCreation, useMemoizedFn } from 'ahooks';
6
- import QRCode from 'qrcode.react';
7
8
  import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';
8
9
 
9
10
  import Address, { IDidAddressWrapper } from '../Address';
@@ -13,16 +14,16 @@ import { DID_PREFIX } from '../Util/constant';
13
14
 
14
15
  import { HTMLDidAddressElement } from '../Address/did-address';
15
16
  import { translate } from '../Locale/util';
16
- import { getDIDColor, getFontSize, isEthereumDid } from '../Util';
17
+ import { getDIDColor, isEthereumDid } from '../Util';
17
18
 
18
19
  const translations = {
19
20
  en: {
20
- scanQrcode: 'Scan with DID Wallet to transfer token to here',
21
+ scanQrcode: 'Scan with DID Wallet to view this {role}',
21
22
  download: 'Download',
22
23
  downloadTips: "Don't have DID Wallet ?",
23
24
  },
24
25
  zh: {
25
- scanQrcode: '扫描此二维码,用 DID Wallet 转账',
26
+ scanQrcode: '使用 DID Wallet 扫码查看该 {role}',
26
27
  download: '下载',
27
28
  downloadTips: '没有 DID Wallet ?',
28
29
  },
@@ -70,6 +71,19 @@ const isSquareMotif = (roleType: number) => {
70
71
  return !roles[roleType];
71
72
  };
72
73
 
74
+ const getRoleName = (roleType: number) => {
75
+ const [roleName] = Object.entries(types.RoleType).find((item) => item[1] === roleType) || [];
76
+
77
+ if (roleName) {
78
+ // UpperCase first word, example:
79
+ // ROLE_ACCOUNT -> Account
80
+ // ROLE_APPLICATION -> Application
81
+ return roleName.toLowerCase().replace(/role_(\S)/g, (_, $1) => $1.toUpperCase());
82
+ }
83
+
84
+ return 'Address';
85
+ };
86
+
73
87
  const getAvatarSize = (didMotifInfo: any, isEthDid: boolean, size: number) => {
74
88
  if (isEthDid) {
75
89
  return size * 0.75;
@@ -139,12 +153,12 @@ const DID = forwardRef<HTMLDIDElement, IDIDPropTypes>((props, ref) => {
139
153
  const [open, setOpen] = useState(false);
140
154
  const isEthDid = isEthereumDid(did);
141
155
  const didMotifInfo = isEthDid ? undefined : getDIDMotifInfo(did);
142
- const fontSize = getFontSize(rest.size);
143
- const prepend = [
144
- <span key="prefix-did" style={{ flex: '0 0 auto', fontSize, color: getFontColor(did, didMotifInfo, isEthDid) }}>
156
+
157
+ const getPrepend = (avatarSize: number) => [
158
+ <span key="prefix-did" style={{ flex: '0 0 auto', color: getFontColor(did, didMotifInfo, isEthDid) }}>
145
159
  DID:
146
160
  </span>,
147
- <span key="prefix-abt" className="did-address-text" style={{ fontSize }}>
161
+ <span key="prefix-abt" className="did-address-text">
148
162
  ABT:
149
163
  </span>,
150
164
  showAvatar && (
@@ -152,7 +166,7 @@ const DID = forwardRef<HTMLDIDElement, IDIDPropTypes>((props, ref) => {
152
166
  key="avatar"
153
167
  src=""
154
168
  did={did}
155
- size={getAvatarSize(didMotifInfo, isEthDid, rest.size || 18)}
169
+ size={getAvatarSize(didMotifInfo, isEthDid, avatarSize || 18)}
156
170
  style={{ display: 'inline-flex', alignItems: 'center', marginLeft: 2, marginRight: 4 }}
157
171
  blockiesPadding={false}
158
172
  className="did-address-avatar"
@@ -218,7 +232,7 @@ const DID = forwardRef<HTMLDIDElement, IDIDPropTypes>((props, ref) => {
218
232
  content={`${DID_PREFIX}${did}`}
219
233
  {...rest}
220
234
  ref={addressRef}
221
- prepend={prepend}
235
+ prepend={getPrepend(rest.size)}
222
236
  append={
223
237
  <>
224
238
  {showQrcode ? (
@@ -241,14 +255,21 @@ const DID = forwardRef<HTMLDIDElement, IDIDPropTypes>((props, ref) => {
241
255
  {did}
242
256
  </Address>
243
257
 
244
- <Dialog open={open} onClose={closeQrCode} maxWidth="sm">
245
- <DialogTitle align="center">
246
- <Typography variant="h6" component="h3">
247
- {t('scanQrcode')}
248
- </Typography>
249
- </DialogTitle>
258
+ <Dialog
259
+ open={open}
260
+ onClose={closeQrCode}
261
+ maxWidth="sm"
262
+ PaperProps={{
263
+ sx: {
264
+ boxShadow: 'none',
265
+ borderRadius: '12px',
266
+ },
267
+ }}>
250
268
  {/* @ts-ignore */}
251
- <DialogContent align={'center' as any}>
269
+ <DialogContent align="center" sx={{ p: 3 }}>
270
+ <Typography sx={{ mb: 2, fontWeight: 500, fontSize: 18 }}>
271
+ {t('scanQrcode', { role: getRoleName(didMotifInfo?.roleType) })}
272
+ </Typography>
252
273
  <QRCode
253
274
  // eslint-disable-next-line max-len
254
275
  value={`abt://abtwallet.io/i?did=${DID_PREFIX}${did}&action=didRecognize&chainID=${
@@ -258,8 +279,14 @@ const DID = forwardRef<HTMLDIDElement, IDIDPropTypes>((props, ref) => {
258
279
  renderAs="svg"
259
280
  level="M"
260
281
  />
261
- <Box sx={{ marginTop: 1, textAlign: 'center' }}>
262
- <Address locale={locale} content={`${DID_PREFIX}${did}`} prepend={prepend} {...rest} copyable>
282
+ <Box sx={{ mt: 1.5, textAlign: 'center' }}>
283
+ <Address
284
+ locale={locale}
285
+ content={`${DID_PREFIX}${did}`}
286
+ prepend={getPrepend(16)}
287
+ {...rest}
288
+ size={16}
289
+ copyable>
263
290
  {did}
264
291
  </Address>
265
292
  </Box>