@abtnode/ux 1.16.27-beta-595ed831 → 1.16.27-beta-74c4e335
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/blocklet/publish/create-release.js +55 -48
- package/lib/blocklet/publish/resource.js +18 -12
- package/lib/blocklet/publish/tree.js +48 -41
- package/lib/blocklet/router/action/add-domain-alias.js +2 -0
- package/lib/blocklet/router/add-domain.js +129 -79
- package/lib/confirm.js +4 -1
- package/lib/locales/ar.js +2 -2
- package/lib/locales/de.js +2 -2
- package/lib/locales/en.js +2 -2
- package/lib/locales/es.js +2 -2
- package/lib/locales/fr.js +2 -2
- package/lib/locales/hi.js +2 -2
- package/lib/locales/i18n.db +0 -0
- package/lib/locales/id.js +2 -2
- package/lib/locales/ja.js +2 -2
- package/lib/locales/ko.js +2 -2
- package/lib/locales/pt.js +2 -2
- package/lib/locales/ru.js +2 -2
- package/lib/locales/th.js +2 -2
- package/lib/locales/vi.js +2 -2
- package/lib/locales/zh-tw.js +2 -2
- package/lib/locales/zh.js +2 -2
- package/package.json +8 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState, useEffect, lazy, useRef, useCallback, useMemo } from 'react';
|
|
1
|
+
import { useState, useEffect, lazy, useRef, useCallback, useMemo, Suspense } from 'react';
|
|
2
2
|
import { Link, useNavigate, useParams } from 'react-router-dom';
|
|
3
3
|
import styled from '@emotion/styled';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
@@ -553,6 +553,7 @@ export default function CreateRelease({
|
|
|
553
553
|
app: blocklet,
|
|
554
554
|
readOnly: readOnly,
|
|
555
555
|
component: resourceItem,
|
|
556
|
+
componentDid: componentDid,
|
|
556
557
|
initUrl: initUrl,
|
|
557
558
|
projectId: projectId === UNOWNED_DID ? '' : projectId,
|
|
558
559
|
releaseUsedLast: releaseUsedLast,
|
|
@@ -974,55 +975,61 @@ export default function CreateRelease({
|
|
|
974
975
|
})]
|
|
975
976
|
})]
|
|
976
977
|
})]
|
|
977
|
-
}), /*#__PURE__*/_jsx(
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
978
|
+
}), /*#__PURE__*/_jsx(Suspense, {
|
|
979
|
+
fallback: /*#__PURE__*/_jsx(EmptySpinner, {}),
|
|
980
|
+
children: /*#__PURE__*/_jsx(UploaderComponent, {
|
|
981
|
+
ref: uploaderLogoRef,
|
|
982
|
+
popup: true,
|
|
983
|
+
onUploadFinish: result => {
|
|
984
|
+
setParams({
|
|
985
|
+
blockletLogo: result.data.filename
|
|
986
|
+
});
|
|
987
|
+
setInitLogoUrl('');
|
|
988
|
+
uploaderLogoRef.current.close();
|
|
989
|
+
},
|
|
990
|
+
plugins: ['ImageEditor'],
|
|
991
|
+
installerProps: {
|
|
992
|
+
disabled: true
|
|
993
|
+
},
|
|
994
|
+
apiPathProps: {
|
|
995
|
+
uploader: uploadLogoPrefix,
|
|
996
|
+
disableMediaKitPrefix: true
|
|
997
|
+
},
|
|
998
|
+
coreProps: {
|
|
999
|
+
restrictions: {
|
|
1000
|
+
allowedFileTypes,
|
|
1001
|
+
maxFileSize,
|
|
1002
|
+
maxNumberOfFiles: 1
|
|
1003
|
+
}
|
|
1000
1004
|
}
|
|
1001
|
-
}
|
|
1002
|
-
}
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
blockletScreenshots
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1005
|
+
}, "uploader-logo")
|
|
1006
|
+
}), /*#__PURE__*/_jsx(Suspense, {
|
|
1007
|
+
fallback: /*#__PURE__*/_jsx(EmptySpinner, {}),
|
|
1008
|
+
children: /*#__PURE__*/_jsx(UploaderComponent, {
|
|
1009
|
+
ref: uploaderScreenshotRef,
|
|
1010
|
+
popup: true,
|
|
1011
|
+
onUploadFinish: result => {
|
|
1012
|
+
const blockletScreenshots = params.blockletScreenshots || [];
|
|
1013
|
+
blockletScreenshots.push(result.data?.filename);
|
|
1014
|
+
setParams({
|
|
1015
|
+
blockletScreenshots
|
|
1016
|
+
});
|
|
1017
|
+
uploaderScreenshotRef.current.close();
|
|
1018
|
+
},
|
|
1019
|
+
plugins: ['ImageEditor'],
|
|
1020
|
+
apiPathProps: {
|
|
1021
|
+
uploader: uploadScreenshotPrefix,
|
|
1022
|
+
disableMediaKitPrefix: true
|
|
1023
|
+
},
|
|
1024
|
+
coreProps: {
|
|
1025
|
+
restrictions: {
|
|
1026
|
+
allowedFileTypes,
|
|
1027
|
+
maxFileSize,
|
|
1028
|
+
maxNumberOfFiles: 5 - screenshotUrls.length
|
|
1029
|
+
}
|
|
1023
1030
|
}
|
|
1024
|
-
}
|
|
1025
|
-
}
|
|
1031
|
+
}, "uploader-screenshot")
|
|
1032
|
+
})]
|
|
1026
1033
|
}), /*#__PURE__*/_jsxs(Box, {
|
|
1027
1034
|
display: "flex",
|
|
1028
1035
|
mt: 3,
|
|
@@ -8,6 +8,7 @@ import Box from '@mui/material/Box';
|
|
|
8
8
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
9
9
|
import Toast from '@arcblock/ux/lib/Toast';
|
|
10
10
|
import pAll from 'p-all';
|
|
11
|
+
import hasStartEngine from '@blocklet/meta/lib/has-start-engine';
|
|
11
12
|
import Tree from './tree';
|
|
12
13
|
import { useNodeContext } from '../../contexts/node';
|
|
13
14
|
import { axios } from '../../util/api';
|
|
@@ -95,6 +96,7 @@ export default function Resource({
|
|
|
95
96
|
error,
|
|
96
97
|
saveSelectedEventsRef,
|
|
97
98
|
readOnly,
|
|
99
|
+
componentDid,
|
|
98
100
|
initialResources = {},
|
|
99
101
|
setResourceComponentsMap,
|
|
100
102
|
initUrl
|
|
@@ -148,18 +150,20 @@ export default function Resource({
|
|
|
148
150
|
if (releaseId && projectId && !loadedDataRef.current) {
|
|
149
151
|
pAll(app.children.map(child => {
|
|
150
152
|
return async () => {
|
|
151
|
-
|
|
153
|
+
// If it is under a certain tenant, only the data of the current tenant is requested
|
|
154
|
+
if (componentDid && componentDid !== child.meta.did) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
// If the component does not have a mount point or does not start the engine, the resource is not requested
|
|
158
|
+
if (!child?.mountPoint || !hasStartEngine(child?.meta)) {
|
|
152
159
|
return;
|
|
153
160
|
}
|
|
154
|
-
let tree;
|
|
155
161
|
try {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
});
|
|
162
|
-
}
|
|
162
|
+
const resTree = await axios.get(parseUrl(child, projectId, releaseId, locale, initUrl));
|
|
163
|
+
const tree = fillParent(resTree?.data?.resources || []);
|
|
164
|
+
setResources({
|
|
165
|
+
[child?.meta.did]: tree
|
|
166
|
+
});
|
|
163
167
|
const res = await api.getSelectedResources({
|
|
164
168
|
input: {
|
|
165
169
|
did: app.meta.did,
|
|
@@ -197,7 +201,7 @@ export default function Resource({
|
|
|
197
201
|
if (initialResources && Object.keys(initialResources).length) {
|
|
198
202
|
app.children.forEach(child => {
|
|
199
203
|
const list = initialResources[child.meta.did];
|
|
200
|
-
if (list) {
|
|
204
|
+
if (list?.length) {
|
|
201
205
|
setSelectedResourceIds({
|
|
202
206
|
[child.meta.did]: list
|
|
203
207
|
});
|
|
@@ -252,7 +256,8 @@ Resource.propTypes = {
|
|
|
252
256
|
}),
|
|
253
257
|
initialResources: PropTypes.object,
|
|
254
258
|
initUrl: PropTypes.object,
|
|
255
|
-
setResourceComponentsMap: PropTypes.func
|
|
259
|
+
setResourceComponentsMap: PropTypes.func,
|
|
260
|
+
componentDid: PropTypes.string
|
|
256
261
|
};
|
|
257
262
|
Resource.defaultProps = {
|
|
258
263
|
error: '',
|
|
@@ -262,7 +267,8 @@ Resource.defaultProps = {
|
|
|
262
267
|
},
|
|
263
268
|
initUrl: null,
|
|
264
269
|
initialResources: {},
|
|
265
|
-
setResourceComponentsMap: () => {}
|
|
270
|
+
setResourceComponentsMap: () => {},
|
|
271
|
+
componentDid: ''
|
|
266
272
|
};
|
|
267
273
|
const Container = styled(Box)`
|
|
268
274
|
border: 1px solid #ccc;
|
|
@@ -112,48 +112,55 @@ export default function Tree({
|
|
|
112
112
|
event.stopPropagation();
|
|
113
113
|
};
|
|
114
114
|
const hadChildren = data.some(node => node.children?.length > 0);
|
|
115
|
-
const renderTree = node =>
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
115
|
+
const renderTree = node => {
|
|
116
|
+
const checked = selectedNodes.indexOf(node.id) !== -1;
|
|
117
|
+
const hasChildren = Array.isArray(node.children);
|
|
118
|
+
const allChild = getAllChild(node.id);
|
|
119
|
+
const indeterminate = hasChildren && !checked && selectedNodes.some(id => allChild.includes(id));
|
|
120
|
+
return /*#__PURE__*/_jsx(TreeItem, {
|
|
121
|
+
nodeId: node.id,
|
|
122
|
+
label: /*#__PURE__*/_jsx(FormControlLabel, {
|
|
123
|
+
onClick: stopExpand,
|
|
124
|
+
control: /*#__PURE__*/_jsx(Checkbox, {
|
|
125
|
+
size: "small",
|
|
126
|
+
checked: checked,
|
|
127
|
+
indeterminate: indeterminate,
|
|
128
|
+
tabIndex: -1,
|
|
129
|
+
disableRipple: true,
|
|
130
|
+
onClick: event => handleNodeSelect(event, node.id),
|
|
131
|
+
disabled: disabled
|
|
132
|
+
}),
|
|
133
|
+
label: /*#__PURE__*/_jsxs(Box, {
|
|
134
|
+
className: "content",
|
|
135
|
+
children: [/*#__PURE__*/_jsxs(Box, {
|
|
136
|
+
display: "flex",
|
|
137
|
+
alignItems: "center",
|
|
138
|
+
children: [node.icon && /*#__PURE__*/_jsx(ResourceIcon, {
|
|
139
|
+
icon: node.icon
|
|
140
|
+
}), /*#__PURE__*/_jsx(Box, {
|
|
141
|
+
className: "name",
|
|
142
|
+
children: node.name
|
|
143
|
+
}), node.url && /*#__PURE__*/_jsx("a", {
|
|
144
|
+
href: node.url,
|
|
145
|
+
target: "_blank",
|
|
146
|
+
rel: "noreferrer",
|
|
147
|
+
className: "link",
|
|
148
|
+
children: /*#__PURE__*/_jsx(OpenInNewIcon, {
|
|
149
|
+
className: "link-icon"
|
|
150
|
+
})
|
|
151
|
+
})]
|
|
152
|
+
}), !!node.description && /*#__PURE__*/_jsx(Box, {
|
|
153
|
+
className: "description",
|
|
154
|
+
children: node.description
|
|
155
|
+
}), !!node.images?.length && /*#__PURE__*/_jsx(Images, {
|
|
156
|
+
className: "images",
|
|
157
|
+
data: node.images
|
|
145
158
|
})]
|
|
146
|
-
})
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
data: node.images
|
|
152
|
-
})]
|
|
153
|
-
})
|
|
154
|
-
}),
|
|
155
|
-
children: Array.isArray(node.children) ? node.children.map(renderTree) : null
|
|
156
|
-
}, node.id);
|
|
159
|
+
})
|
|
160
|
+
}),
|
|
161
|
+
children: hasChildren ? node.children.map(renderTree) : null
|
|
162
|
+
}, node.id);
|
|
163
|
+
};
|
|
157
164
|
return /*#__PURE__*/_jsx(StyledTreeView, {
|
|
158
165
|
className: classnames(!hadChildren && 'no-children'),
|
|
159
166
|
multiSelect: true,
|
|
@@ -141,6 +141,8 @@ function AddDomainAliasComponent({
|
|
|
141
141
|
params: state.confirmSetting.params,
|
|
142
142
|
onConfirm: state.confirmSetting.onConfirm,
|
|
143
143
|
onCancel: state.confirmSetting.onCancel,
|
|
144
|
+
showConfirm: false,
|
|
145
|
+
showCancel: true,
|
|
144
146
|
displayError: false,
|
|
145
147
|
color: "primary",
|
|
146
148
|
loading: state.loading,
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
import { getDidDomainServiceURL } from '@abtnode/util/lib/did-domain';
|
|
2
2
|
import Connect from '@arcblock/did-connect/lib/Connect';
|
|
3
|
-
import Button from '@arcblock/ux/lib/Button';
|
|
4
3
|
import Center from '@arcblock/ux/lib/Center';
|
|
5
4
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
6
5
|
import Toast from '@arcblock/ux/lib/Toast';
|
|
6
|
+
import useMobile from '@blocklet/ui-react/lib/hooks/use-mobile';
|
|
7
7
|
import IconInfo from '@mui/icons-material/InfoOutlined';
|
|
8
8
|
import OpenInNewIcon from '@mui/icons-material/OpenInNew';
|
|
9
|
+
import LoadingButton from '@mui/lab/LoadingButton';
|
|
9
10
|
import Box from '@mui/material/Box';
|
|
11
|
+
import CircularProgress from '@mui/material/CircularProgress';
|
|
10
12
|
import Link from '@mui/material/Link';
|
|
11
13
|
import TextField from '@mui/material/TextField';
|
|
14
|
+
import Typography from '@mui/material/Typography';
|
|
12
15
|
import useTheme from '@mui/material/styles/useTheme';
|
|
13
16
|
import noop from 'lodash/noop';
|
|
14
17
|
import trim from 'lodash/trim';
|
|
15
18
|
import PropTypes from 'prop-types';
|
|
16
|
-
import useSetState from 'react-use/lib/useSetState';
|
|
17
19
|
import useAsync from 'react-use/lib/useAsync';
|
|
18
|
-
import
|
|
20
|
+
import useSetState from 'react-use/lib/useSetState';
|
|
19
21
|
import { useDomainContext } from '../../contexts/domain';
|
|
20
22
|
import { useNodeContext } from '../../contexts/node';
|
|
21
23
|
import { sleep, validateDomain } from '../../util';
|
|
22
24
|
import { axios } from '../../util/api';
|
|
23
25
|
import DNSTip from './dns-tip';
|
|
24
26
|
import { parseDomainFromURL } from './util';
|
|
25
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
27
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
28
|
export default function AddDomain({
|
|
27
29
|
siteId,
|
|
28
30
|
teamDid,
|
|
@@ -47,7 +49,11 @@ export default function AddDomain({
|
|
|
47
49
|
} = useNodeContext();
|
|
48
50
|
const domainContext = useDomainContext();
|
|
49
51
|
const theme = useTheme();
|
|
52
|
+
const isMobile = useMobile({
|
|
53
|
+
key: 'sm'
|
|
54
|
+
});
|
|
50
55
|
const [state, setState] = useSetState({
|
|
56
|
+
loading: false,
|
|
51
57
|
domain: defaultCustomDomain,
|
|
52
58
|
error: null,
|
|
53
59
|
type: info?.nftDomainUrl ? 'nftDomain' : 'inputDomain',
|
|
@@ -73,6 +79,7 @@ export default function AddDomain({
|
|
|
73
79
|
})
|
|
74
80
|
});
|
|
75
81
|
}
|
|
82
|
+
const nftDomainService = nftDomainURLState.value;
|
|
76
83
|
const handleAuthSuccess = async ({
|
|
77
84
|
domain,
|
|
78
85
|
nftDid,
|
|
@@ -93,7 +100,6 @@ export default function AddDomain({
|
|
|
93
100
|
});
|
|
94
101
|
await sleep(2000);
|
|
95
102
|
setState({
|
|
96
|
-
confirmSetting: null,
|
|
97
103
|
showNFTDomainAuth: false,
|
|
98
104
|
type: 'nftDomain'
|
|
99
105
|
});
|
|
@@ -111,14 +117,85 @@ export default function AddDomain({
|
|
|
111
117
|
});
|
|
112
118
|
}
|
|
113
119
|
};
|
|
120
|
+
const handleAdd = async () => {
|
|
121
|
+
try {
|
|
122
|
+
setState({
|
|
123
|
+
loading: true
|
|
124
|
+
});
|
|
125
|
+
const domain = parseDomainFromURL(state.domain);
|
|
126
|
+
if (info.nftDomainUrl && nftDomainService) {
|
|
127
|
+
const result = await api.isDidDomain({
|
|
128
|
+
input: {
|
|
129
|
+
domain
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
if (result.value === true) {
|
|
133
|
+
setState({
|
|
134
|
+
showNFTDomainAuth: true
|
|
135
|
+
});
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
await api.addDomainAlias({
|
|
140
|
+
input: {
|
|
141
|
+
id: siteId,
|
|
142
|
+
domainAlias: domain,
|
|
143
|
+
teamDid
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
await sleep(2000);
|
|
147
|
+
setState({
|
|
148
|
+
loading: false
|
|
149
|
+
});
|
|
150
|
+
onSuccess({
|
|
151
|
+
domain,
|
|
152
|
+
type: state.type
|
|
153
|
+
});
|
|
154
|
+
} catch (error) {
|
|
155
|
+
domainContext.setError(error.message);
|
|
156
|
+
setState({
|
|
157
|
+
loading: false
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
};
|
|
114
161
|
const error = domainContext.error || state.error; // TODO: state error 可能不需要了
|
|
115
162
|
|
|
116
|
-
const nftDomainService = nftDomainURLState.value;
|
|
117
163
|
const domainTypes = {
|
|
118
164
|
inputDomain: {
|
|
119
165
|
name: t('router.domainAlias.inputDomain'),
|
|
120
|
-
component: /*#__PURE__*/_jsxs(
|
|
121
|
-
|
|
166
|
+
component: /*#__PURE__*/_jsxs(Box, {
|
|
167
|
+
sx: {
|
|
168
|
+
display: 'flex',
|
|
169
|
+
flexDirection: 'column',
|
|
170
|
+
gap: '8px'
|
|
171
|
+
},
|
|
172
|
+
children: [info.nftDomainUrl && nftDomainService && /*#__PURE__*/_jsxs(Box, {
|
|
173
|
+
sx: {
|
|
174
|
+
maxWidth: '640px',
|
|
175
|
+
color: theme.palette.text.primary
|
|
176
|
+
},
|
|
177
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
178
|
+
children: t('router.domainAlias.addDomainNFT.tips')
|
|
179
|
+
}), /*#__PURE__*/_jsxs(Typography, {
|
|
180
|
+
component: "div",
|
|
181
|
+
children: [t('router.domainAlias.addDomainNFT.buyTip'), /*#__PURE__*/_jsxs(Link, {
|
|
182
|
+
href: nftDomainService.base,
|
|
183
|
+
sx: {
|
|
184
|
+
display: 'inline-flex',
|
|
185
|
+
alignItems: 'center'
|
|
186
|
+
},
|
|
187
|
+
target: "_blank",
|
|
188
|
+
children: [/*#__PURE__*/_jsx("i", {
|
|
189
|
+
children: t('router.domainAlias.addDomainNFT.buy')
|
|
190
|
+
}), /*#__PURE__*/_jsx(OpenInNewIcon, {
|
|
191
|
+
fontSize: "small"
|
|
192
|
+
})]
|
|
193
|
+
})]
|
|
194
|
+
})]
|
|
195
|
+
}), /*#__PURE__*/_jsx(TextField, {
|
|
196
|
+
sx: {
|
|
197
|
+
display: 'block'
|
|
198
|
+
},
|
|
122
199
|
label: t('router.domainAlias.add.domainDescription'),
|
|
123
200
|
helperText: state.type === 'inputDomain' && error || t('router.domainAlias.add.helperText'),
|
|
124
201
|
inputProps: {
|
|
@@ -154,6 +231,20 @@ export default function AddDomain({
|
|
|
154
231
|
domainContext.setError(null);
|
|
155
232
|
}
|
|
156
233
|
}
|
|
234
|
+
}), /*#__PURE__*/_jsx(Box, {
|
|
235
|
+
sx: {
|
|
236
|
+
width: '100%',
|
|
237
|
+
display: 'flex',
|
|
238
|
+
justifyContent: 'flex-end'
|
|
239
|
+
},
|
|
240
|
+
children: /*#__PURE__*/_jsx(LoadingButton, {
|
|
241
|
+
"data-cy": "confirm-add-domain",
|
|
242
|
+
fullWidth: isMobile,
|
|
243
|
+
variant: "contained",
|
|
244
|
+
loading: state.loading,
|
|
245
|
+
onClick: handleAdd,
|
|
246
|
+
children: t('common.add')
|
|
247
|
+
})
|
|
157
248
|
}), /*#__PURE__*/_jsxs(Box, {
|
|
158
249
|
sx: {
|
|
159
250
|
cursor: 'pointer',
|
|
@@ -161,7 +252,6 @@ export default function AddDomain({
|
|
|
161
252
|
display: 'flex',
|
|
162
253
|
alignItems: 'center',
|
|
163
254
|
gap: '4px',
|
|
164
|
-
marginTop: '8px',
|
|
165
255
|
lineHeight: 1,
|
|
166
256
|
color: theme.palette.primary.main
|
|
167
257
|
},
|
|
@@ -181,73 +271,6 @@ export default function AddDomain({
|
|
|
181
271
|
})
|
|
182
272
|
}
|
|
183
273
|
};
|
|
184
|
-
if (info?.nftDomainUrl && nftDomainService) {
|
|
185
|
-
domainTypes.nftDomain = {
|
|
186
|
-
name: t('router.domainAlias.nftDomain'),
|
|
187
|
-
component: /*#__PURE__*/_jsxs(_Fragment, {
|
|
188
|
-
children: [/*#__PURE__*/_jsxs(Box, {
|
|
189
|
-
sx: {
|
|
190
|
-
maxWidth: '640px',
|
|
191
|
-
color: 'text.secondary',
|
|
192
|
-
fontSize: '14px'
|
|
193
|
-
},
|
|
194
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
195
|
-
children: t('router.domainAlias.addDomainNFT.tips')
|
|
196
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
197
|
-
children: [t('router.domainAlias.addDomainNFT.buyTip'), /*#__PURE__*/_jsxs(Link, {
|
|
198
|
-
href: nftDomainService.base,
|
|
199
|
-
sx: {
|
|
200
|
-
fontSize: '14px',
|
|
201
|
-
display: 'inline-flex',
|
|
202
|
-
alignItems: 'center'
|
|
203
|
-
},
|
|
204
|
-
target: "_blank",
|
|
205
|
-
children: [/*#__PURE__*/_jsx("i", {
|
|
206
|
-
children: t('router.domainAlias.addDomainNFT.buy')
|
|
207
|
-
}), /*#__PURE__*/_jsx(OpenInNewIcon, {
|
|
208
|
-
fontSize: "small"
|
|
209
|
-
})]
|
|
210
|
-
})]
|
|
211
|
-
})]
|
|
212
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
213
|
-
sx: {
|
|
214
|
-
marginTop: '8px'
|
|
215
|
-
},
|
|
216
|
-
disabled: disabled,
|
|
217
|
-
onClick: () => setState({
|
|
218
|
-
showNFTDomainAuth: true
|
|
219
|
-
}),
|
|
220
|
-
variant: "contained",
|
|
221
|
-
children: t('router.domainAlias.addDomainNFT.showNFT')
|
|
222
|
-
}), /*#__PURE__*/_jsx(Connect, {
|
|
223
|
-
open: state.showNFTDomainAuth,
|
|
224
|
-
popup: true,
|
|
225
|
-
useSocket: false,
|
|
226
|
-
action: "authorize",
|
|
227
|
-
baseUrl: nftDomainService.api,
|
|
228
|
-
checkFn: axios.create({
|
|
229
|
-
baseURL: nftDomainService.api
|
|
230
|
-
}).get,
|
|
231
|
-
extraParams: {
|
|
232
|
-
delegatee: appId,
|
|
233
|
-
delegateePk: appPk
|
|
234
|
-
},
|
|
235
|
-
onSuccess: handleAuthSuccess,
|
|
236
|
-
onClose: () => setState({
|
|
237
|
-
showNFTDomainAuth: false
|
|
238
|
-
}),
|
|
239
|
-
checkTimeout: 60 * 5000,
|
|
240
|
-
showDownload: false,
|
|
241
|
-
messages: {
|
|
242
|
-
title: t('router.domainAlias.addDomainNFT.connect.title'),
|
|
243
|
-
scan: t('router.domainAlias.addDomainNFT.connect.scan'),
|
|
244
|
-
confirm: t('router.domainAlias.addDomainNFT.connect.confirm'),
|
|
245
|
-
success: t('router.domainAlias.addDomainNFT.connect.success')
|
|
246
|
-
}
|
|
247
|
-
})]
|
|
248
|
-
})
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
274
|
const inputDomainTypes = Object.keys(domainTypes);
|
|
252
275
|
inputDomainTypes.sort(x => {
|
|
253
276
|
// 优先展示 nft domain
|
|
@@ -258,14 +281,14 @@ export default function AddDomain({
|
|
|
258
281
|
});
|
|
259
282
|
return /*#__PURE__*/_jsx(Box, {
|
|
260
283
|
...props,
|
|
261
|
-
children: /*#__PURE__*/
|
|
284
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
|
262
285
|
sx: {
|
|
263
286
|
display: 'flex',
|
|
264
287
|
flexDirection: 'column',
|
|
265
288
|
justifyContent: 'flex-start',
|
|
266
289
|
gap: '1em'
|
|
267
290
|
},
|
|
268
|
-
children: inputDomainTypes.map((type, index) => /*#__PURE__*/_jsxs(Box, {
|
|
291
|
+
children: [inputDomainTypes.map((type, index) => /*#__PURE__*/_jsxs(Box, {
|
|
269
292
|
children: [inputDomainTypes.length > 1 && /*#__PURE__*/_jsx(Box, {
|
|
270
293
|
sx: {
|
|
271
294
|
fontWeight: 700,
|
|
@@ -278,7 +301,34 @@ export default function AddDomain({
|
|
|
278
301
|
},
|
|
279
302
|
children: domainTypes[type]?.component
|
|
280
303
|
})]
|
|
281
|
-
}, type))
|
|
304
|
+
}, type)), /*#__PURE__*/_jsx(Connect, {
|
|
305
|
+
open: state.showNFTDomainAuth,
|
|
306
|
+
popup: true,
|
|
307
|
+
useSocket: false,
|
|
308
|
+
action: "authorize",
|
|
309
|
+
baseUrl: nftDomainService.api,
|
|
310
|
+
checkFn: axios.create({
|
|
311
|
+
baseURL: nftDomainService.api
|
|
312
|
+
}).get,
|
|
313
|
+
extraParams: {
|
|
314
|
+
delegatee: appId,
|
|
315
|
+
delegateePk: appPk,
|
|
316
|
+
domain: state.domain
|
|
317
|
+
},
|
|
318
|
+
onSuccess: handleAuthSuccess,
|
|
319
|
+
onClose: () => setState({
|
|
320
|
+
showNFTDomainAuth: false,
|
|
321
|
+
loading: false
|
|
322
|
+
}),
|
|
323
|
+
checkTimeout: 60 * 5000,
|
|
324
|
+
showDownload: false,
|
|
325
|
+
messages: {
|
|
326
|
+
title: t('router.domainAlias.addDomainNFT.connect.title'),
|
|
327
|
+
scan: t('router.domainAlias.addDomainNFT.connect.scan'),
|
|
328
|
+
confirm: t('router.domainAlias.addDomainNFT.connect.confirm'),
|
|
329
|
+
success: t('router.domainAlias.addDomainNFT.connect.success')
|
|
330
|
+
}
|
|
331
|
+
})]
|
|
282
332
|
})
|
|
283
333
|
});
|
|
284
334
|
}
|
package/lib/confirm.js
CHANGED
|
@@ -19,6 +19,7 @@ export default function ConfirmDialog({
|
|
|
19
19
|
title,
|
|
20
20
|
description,
|
|
21
21
|
showCancel,
|
|
22
|
+
showConfirm,
|
|
22
23
|
cancel,
|
|
23
24
|
confirm,
|
|
24
25
|
color,
|
|
@@ -104,7 +105,7 @@ export default function ConfirmDialog({
|
|
|
104
105
|
color: "inherit",
|
|
105
106
|
"data-cy": "cancel-confirm-dialog",
|
|
106
107
|
children: cancel || changeLocale('common.cancel')
|
|
107
|
-
}), /*#__PURE__*/_jsxs(Button, {
|
|
108
|
+
}), showConfirm && /*#__PURE__*/_jsxs(Button, {
|
|
108
109
|
onClick: e => {
|
|
109
110
|
e.stopPropagation();
|
|
110
111
|
onCallback(onConfirm);
|
|
@@ -131,6 +132,7 @@ ConfirmDialog.propTypes = {
|
|
|
131
132
|
description: PropTypes.any.isRequired,
|
|
132
133
|
// can be a function that renders different content based on params
|
|
133
134
|
showCancel: PropTypes.bool,
|
|
135
|
+
showConfirm: PropTypes.bool,
|
|
134
136
|
cancel: PropTypes.string,
|
|
135
137
|
color: PropTypes.string,
|
|
136
138
|
confirm: PropTypes.string,
|
|
@@ -146,6 +148,7 @@ ConfirmDialog.defaultProps = {
|
|
|
146
148
|
children: undefined,
|
|
147
149
|
onCancel: () => {},
|
|
148
150
|
showCancel: true,
|
|
151
|
+
showConfirm: true,
|
|
149
152
|
cancel: '',
|
|
150
153
|
confirm: 'Confirm',
|
|
151
154
|
color: 'error',
|
package/lib/locales/ar.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'ضبط النطاق تلقائيًا',
|
|
1051
|
-
tips: '
|
|
1051
|
+
tips: 'يمكنك إدخال نطاق تم شراؤه من DID Domain. في حالة اكتشاف نطاق DID، يجب عليك تقديم نطاق DID NFT للاستمرار.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'يرجى عرض مجال NFT الخاص بك',
|
|
1054
1054
|
scan: 'يرجى مسح الرمز الاستجابة السريعة التالي باستخدام محفظة DID الخاصة بك للسماح لـ blocklet باستخدام نطاقك.',
|
|
1055
1055
|
confirm: 'يرجى التأكيد على محفظتك المعرّفة',
|
|
1056
1056
|
success: 'تم التفويض بنجاح'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: '
|
|
1058
|
+
buyTip: 'سيقوم تطبيق DID Domain بإجراء حل اسم النطاق تلقائيًا، ولا داعي لتكوينه يدويًا، كما سيقوم التطبيق بتحديث سجل الحل الخاص باسم النطاق تلقائيًا عند الحاجة. في حال لم يكن لديك تطبيق DID Domain NFT حتى الآن،',
|
|
1059
1059
|
buy: 'اشترِه الآن!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/de.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'Konfiguriere die Domain automatisch',
|
|
1051
|
-
tips: '
|
|
1051
|
+
tips: 'Sie können eine über DID Domain erworbene Domäne eingeben. Wenn eine DID Domain erkannt wird, müssen Sie die DID Domain NFT vorlegen, um fortzufahren.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'Bitte zeigen Sie Ihr Domain-NFT',
|
|
1054
1054
|
scan: 'Scannen Sie den folgenden QR-Code mit Ihrer DID Wallet, um blocklet zu autorisieren, Ihre Domain zu verwenden.',
|
|
1055
1055
|
confirm: 'Bitte bestätigen Sie in Ihrem DID Wallet',
|
|
1056
1056
|
success: 'Autorisierung erfolgreich'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: 'Wenn Sie noch keine DID
|
|
1058
|
+
buyTip: 'DID Domain übernimmt die Auflösung des Domänennamens automatisch. Sie müssen ihn nicht manuell konfigurieren, und die Anwendung aktualisiert den Auflösungsdatensatz des Domänennamens bei Bedarf automatisch. Wenn Sie noch keine DID Domain NFT haben,',
|
|
1059
1059
|
buy: 'Jetzt kaufen!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/en.js
CHANGED
|
@@ -1039,14 +1039,14 @@ export default {
|
|
|
1039
1039
|
},
|
|
1040
1040
|
addDomainNFT: {
|
|
1041
1041
|
showNFT: 'Configure domain automatically',
|
|
1042
|
-
tips: '
|
|
1042
|
+
tips: 'You can enter a domain purchased from DID Domain. If a DID Domain is detected, you must present the DID Domain NFT to continue.',
|
|
1043
1043
|
connect: {
|
|
1044
1044
|
title: 'Please show your Domain NFT',
|
|
1045
1045
|
scan: 'Scan following QR code with DID Wallet to authorize to blocklet to use your domain',
|
|
1046
1046
|
confirm: 'Confirm on your DID Wallet',
|
|
1047
1047
|
success: 'Authorization Successfully'
|
|
1048
1048
|
},
|
|
1049
|
-
buyTip: "If your don't have DID Domain NFT yet, ",
|
|
1049
|
+
buyTip: "DID Domain will do the domain name resolution automatically, no need to configure it manually, and the application will update the resolution record of the domain name automatically when needed. If your don't have DID Domain NFT yet, ",
|
|
1050
1050
|
buy: 'buy it now!'
|
|
1051
1051
|
},
|
|
1052
1052
|
delete: {
|
package/lib/locales/es.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'Configurar dominio automáticamente',
|
|
1051
|
-
tips: '
|
|
1051
|
+
tips: 'Puedes ingresar a un dominio comprado del DID Domain. Si se detecta un DID Domain, debes presentar el NFT DID Domain para continuar.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'Por favor muestra tu NFT de dominio',
|
|
1054
1054
|
scan: 'Escanee el siguiente código QR con DID Wallet para autorizar a Blocklet a usar su dominio',
|
|
1055
1055
|
confirm: 'Confirma en tu billetera de DID',
|
|
1056
1056
|
success: 'Autorización Exitosa'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: 'Si
|
|
1058
|
+
buyTip: 'El dominio DID hará la resolución del nombre del dominio automáticamente, sin necesidad de configurarlo manualmente, y la aplicación actualizará el registro de resolución del nombre de dominio automáticamente cuando sea necesario. Si todavía no tienes NFT de dominio DID,',
|
|
1059
1059
|
buy: '¡Cómpralo ahora!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/fr.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'Configurer le domaine automatiquement',
|
|
1051
|
-
tips:
|
|
1051
|
+
tips: 'Vous pouvez saisir un domaine acheté auprès de DID Domain. Si un domaine DID est détecté, vous devez présenter le domaine DID NFT pour continuer.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'Veuillez montrer votre Domaine NFT',
|
|
1054
1054
|
scan: 'Veuillez numériser le code QR suivant avec votre DID Wallet pour autoriser le blocklet à utiliser votre domaine.',
|
|
1055
1055
|
confirm: 'Veuillez confirmer sur votre portefeuille DID',
|
|
1056
1056
|
success: 'Autorisation réussie'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: "Si vous n'avez pas encore de DID Domain
|
|
1058
|
+
buyTip: "DID Domain effectuera la résolution du nom de domaine automatiquement, pas besoin de le configurer manuellement, et l'application mettra à jour l'enregistrement de résolution du nom de domaine automatiquement en cas de besoin. Si vous n'avez pas encore de NFT DID Domain,",
|
|
1059
1059
|
buy: 'Achetez-le maintenant !'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/hi.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'डोमेन को स्वचालित रूप से समाकृत करें',
|
|
1051
|
-
tips: 'DID
|
|
1051
|
+
tips: 'आप DID Domain से खरीदी गई डोमेन दर्ज कर सकते हैं। यदि कोई DID डोमेन पहचाना जाता है, तो आपको जारी रखने के लिए DID डोमेन NFT प्रस्तुत करना होगा।',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'कृपया अपने डोमेन NFT दिखाएं',
|
|
1054
1054
|
scan: 'अपने डोमेन का उपयोग करने के लिए ब्लॉकलेट को अधिकृत करने के लिए DID वॉलेट के साथ निम्नलिखित QR कोड स्कैन करें।',
|
|
1055
1055
|
confirm: 'अपने डीआईडी वॉलेट पर पुष्टि करें',
|
|
1056
1056
|
success: 'प्राधिकरण सफलतापूर्वक'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: 'यदि आपके पास अभी तक DID डोमेन NFT नहीं है,',
|
|
1058
|
+
buyTip: 'DID डोमेन डोमेन नाम रिज़ॉल्यूशन अपने आप करेगा, इसे मैन्युअली कॉन्फ़िगर करने की कोई ज़रूरत नहीं है, और एप्लीकेशन ज़रूरत पड़ने पर डोमेन नाम का रिज़ॉल्यूशन रिकॉर्ड खुद ही अपडेट कर देगा। यदि आपके पास अभी तक DID डोमेन NFT नहीं है,',
|
|
1059
1059
|
buy: 'अभी खरीदें!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/i18n.db
CHANGED
|
Binary file
|
package/lib/locales/id.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'Konfigurasi domain secara otomatis',
|
|
1051
|
-
tips: '
|
|
1051
|
+
tips: 'Anda dapat memasukkan domain yang dibeli dari DID Domain. Jika DID Domain terdeteksi, Anda harus menunjukkan NFT DID Domain untuk melanjutkan.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'Tolong tunjukkan NFT Domain Anda',
|
|
1054
1054
|
scan: 'Pindai kode QR berikut menggunakan Dompet DID untuk mengizinkan Blocklet menggunakan domain Anda',
|
|
1055
1055
|
confirm: 'Konfirmasi di Dompet Anda DID',
|
|
1056
1056
|
success: 'Otorisasi Berhasil'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: 'Jika Anda belum memiliki NFT Domain
|
|
1058
|
+
buyTip: 'DID Domain akan melakukan resolusi nama domain secara otomatis, tidak perlu dikonfigurasikan secara manual, dan aplikasi akan memperbarui catatan resolusi nama domain secara otomatis saat diperlukan. Jika Anda belum memiliki NFT DID Domain,',
|
|
1059
1059
|
buy: 'Beli sekarang!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/ja.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'ドメインを自動的に設定する',
|
|
1051
|
-
tips: 'DID
|
|
1051
|
+
tips: 'DID ドメインから購入されたドメインを入力できます。DID ドメインが検出された場合は、DID ドメイン NFT を提示して続行する必要があります。',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'ドメインのNFTを表示してください',
|
|
1054
1054
|
scan: 'DIDウォレットで次のQRコードをスキャンして、ブロックレットがあなたのドメインを使用することを許可してください',
|
|
1055
1055
|
confirm: 'あなたのDIDウォレットで確認してください',
|
|
1056
1056
|
success: '認証が成功しました'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: '
|
|
1058
|
+
buyTip: 'DIDドメインは自動的にドメイン名解決を行い、手動で設定する必要はなく、必要に応じてアプリケーションは自動的にドメイン名の解決レコードを更新します。DIDドメインNFTをまだお持ちでない場合は、',
|
|
1059
1059
|
buy: '今すぐ購入!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/ko.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: '도메인 자동으로 구성하기',
|
|
1051
|
-
tips: 'DID
|
|
1051
|
+
tips: 'DID 도메인에서 구매한 도메인을 입력할 수 있습니다. DID 도메인이 감지되면 계속 진행하려면 DID 도메인 NFT를 제시해야 합니다.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: '도메인 NFT를 보여주세요',
|
|
1054
1054
|
scan: 'DID 지갑을 사용하여 다음 QR 코드를 스캔하여 블록렛이 도메인을 사용할 수 있도록 인증하세요',
|
|
1055
1055
|
confirm: 'DID 지갑에서 확인하세요',
|
|
1056
1056
|
success: '인증 성공'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: '
|
|
1058
|
+
buyTip: 'DID 도메인은 자동으로 도메인 이름 확인을 실행합니다. 수동으로 구성할 필요가 없으며, 애플리케이션은 필요 시 자동으로 도메인 이름 확인 레코드를 업데이트합니다. DID 도메인 NFT가 아직 없는 경우',
|
|
1059
1059
|
buy: '지금 구매하세요!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/pt.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'Configure o domínio automaticamente',
|
|
1051
|
-
tips: '
|
|
1051
|
+
tips: 'Você pode inserir um domínio comprado do DID Domain. Se for detectado um DID Domain, você precisará apresentar o NFT do DID Domain para prosseguir.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'Por favor, mostre o seu NFT de Domínio',
|
|
1054
1054
|
scan: 'Escaneie o código QR a seguir com a Carteira DID para autorizar o Blocklet a usar seu domínio',
|
|
1055
1055
|
confirm: 'Confirme em sua Carteira DID',
|
|
1056
1056
|
success: 'Autorização Concluída com Sucesso'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: '
|
|
1058
|
+
buyTip: 'O DID Domain faz a resolução de nome de domínio automaticamente, não precisa de ser configurado manualmente e a aplicação atualizará o registro de resolução do nome de domínio automaticamente quando for preciso. Se ainda não tem DID Domain NFT,',
|
|
1059
1059
|
buy: 'Compre agora!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/ru.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'Настройте домен автоматически',
|
|
1051
|
-
tips: '
|
|
1051
|
+
tips: 'Вы можете ввести домен, приобретенный у DID Domain. Если обнаружен DID-домен, вы должны предъявить DID-домен NFT, чтобы продолжить.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'Пожалуйста, покажите вашу Доменную NFT',
|
|
1054
1054
|
scan: 'Для авторизации blocklet для использования вашего домена отсканируйте следующий QR-код с помощью DID Wallet.',
|
|
1055
1055
|
confirm: 'Подтвердите в своем кошельке DID',
|
|
1056
1056
|
success: 'Успешная авторизация'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: 'Если у вас еще нет DID Domain NFT, ',
|
|
1058
|
+
buyTip: 'DID Domain выполнит разрешение доменного имени автоматически. Вам не нужно настраивать его вручную, и приложение обновит запись разрешения доменного имени автоматически, когда это необходимо. Если у вас еще нет DID Domain NFT, ',
|
|
1059
1059
|
buy: 'Купите сейчас!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/th.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'กำหนดค่าโดเมนอัตโนมัติ',
|
|
1051
|
-
tips: '
|
|
1051
|
+
tips: 'คุณสามารถป้อนโดเมนที่ซื้อจาก DID Domain ได้ หากตรวจพบ DID Domain คุณต้องนำเสนอ NFT ของ DID Domain เพื่อดำเนินการต่อ',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'กรุณาแสดง NFT โดเมนของคุณ',
|
|
1054
1054
|
scan: 'สแกนรหัส QR ต่อไปนี้ด้วยกระเป๋าเงินดิจิตอลเพื่อให้ Blocklet เข้าถึงโดเมนของคุณ',
|
|
1055
1055
|
confirm: 'ยืนยันในกระเป๋าเงินของคุณ DID',
|
|
1056
1056
|
success: 'อนุญาตสำเร็จ'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: 'หากคุณยังไม่มี DID Domain NFT',
|
|
1058
|
+
buyTip: 'DID Domain จะทำการแก้ไขชื่อโดเมนโดยอัตโนมัติ ไม่ต้องกำหนดค่าด้วยตนเอง และแอปพลิเคชันจะอัปเดตระเบียนการแก้ไขชื่อโดเมนโดยอัตโนมัติเมื่อจำเป็น หากคุณยังไม่มี DID Domain NFT',
|
|
1059
1059
|
buy: 'ซื้อเดี๋ยวนี้!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/vi.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: 'Cấu hình tên miền tự động',
|
|
1051
|
-
tips: '
|
|
1051
|
+
tips: 'Bạn có thể nhập một miền được mua từ DID Domain. Nếu phát hiện miền DID Domain, bạn phải trình bày NFT DID Domain để tiếp tục.',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: 'Xin vui lòng hiển thị NFT Domain của bạn',
|
|
1054
1054
|
scan: 'Quét mã QR sau bằng Ví DID để ủy quyền cho Blocklet sử dụng miền của bạn',
|
|
1055
1055
|
confirm: 'Xác nhận trên Ví DID của bạn',
|
|
1056
1056
|
success: 'Xác nhận thành công'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: 'Nếu bạn chưa có DID Domain NFT',
|
|
1058
|
+
buyTip: 'DID Domain sẽ thực hiện phân giải tên miền tự động, không cần phải cấu hình thủ công và ứng dụng sẽ tự động cập nhật bản ghi phân giải của tên miền khi cần thiết. Nếu bạn chưa có DID Domain NFT,',
|
|
1059
1059
|
buy: 'Mua ngay!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/zh-tw.js
CHANGED
|
@@ -1048,14 +1048,14 @@ export default {
|
|
|
1048
1048
|
},
|
|
1049
1049
|
addDomainNFT: {
|
|
1050
1050
|
showNFT: '自動配置網域',
|
|
1051
|
-
tips: 'DID
|
|
1051
|
+
tips: '您可以輸入從 DID Domain 購買的網域。如果檢測到 DID Domain,您必須出示 DID Domain NFT 才能繼續。',
|
|
1052
1052
|
connect: {
|
|
1053
1053
|
title: '請展示你的域名 NFT',
|
|
1054
1054
|
scan: '使用DID錢包掃描以下QR碼以授權Blocklet使用您的域名',
|
|
1055
1055
|
confirm: '在您的DID錢包上確認',
|
|
1056
1056
|
success: '授權成功'
|
|
1057
1057
|
},
|
|
1058
|
-
buyTip: '
|
|
1058
|
+
buyTip: 'DID Domain 將自動執行網域名稱解析,無需手動配置,且應用程式將在需要時自動更新網域名稱解析記錄。如果您還沒有 DID Domain NFT,',
|
|
1059
1059
|
buy: '立即購買!'
|
|
1060
1060
|
},
|
|
1061
1061
|
delete: {
|
package/lib/locales/zh.js
CHANGED
|
@@ -1052,14 +1052,14 @@ export default {
|
|
|
1052
1052
|
addDomainNFT: {
|
|
1053
1053
|
name: 'NFT 域名',
|
|
1054
1054
|
showNFT: '自动配置域名',
|
|
1055
|
-
tips: 'DID
|
|
1055
|
+
tips: '您可以输入从 DID Domain 购买的域名。如果检测到 DID Domain,您必须出示 DID Domain NFT 才能继续。',
|
|
1056
1056
|
connect: {
|
|
1057
1057
|
title: '请出示域名 NFT',
|
|
1058
1058
|
scan: '用 DID 钱包扫描下面的二维码, 出示域名 NFT',
|
|
1059
1059
|
confirm: '在您的 DID 钱包上确认',
|
|
1060
1060
|
success: '授权成功'
|
|
1061
1061
|
},
|
|
1062
|
-
buyTip: '
|
|
1062
|
+
buyTip: 'DID Domain 将自动执行域名解析,无需手动配置,并且应用程序将在需要时自动更新域名解析记录。如果您还没有 DID Domain NFT,',
|
|
1063
1063
|
buy: '现在购买!'
|
|
1064
1064
|
},
|
|
1065
1065
|
delete: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abtnode/ux",
|
|
3
|
-
"version": "1.16.27-beta-
|
|
3
|
+
"version": "1.16.27-beta-74c4e335",
|
|
4
4
|
"description": "UX components shared across abtnode packages",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
|
|
27
27
|
"license": "Apache-2.0",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@abtnode/auth": "1.16.27-beta-
|
|
30
|
-
"@abtnode/constant": "1.16.27-beta-
|
|
31
|
-
"@abtnode/util": "1.16.27-beta-
|
|
29
|
+
"@abtnode/auth": "1.16.27-beta-74c4e335",
|
|
30
|
+
"@abtnode/constant": "1.16.27-beta-74c4e335",
|
|
31
|
+
"@abtnode/util": "1.16.27-beta-74c4e335",
|
|
32
32
|
"@ahooksjs/use-url-state": "^3.5.1",
|
|
33
33
|
"@arcblock/did": "^1.18.121",
|
|
34
34
|
"@arcblock/did-connect": "^2.9.89",
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"@arcblock/react-hooks": "^2.9.89",
|
|
39
39
|
"@arcblock/terminal": "^2.9.89",
|
|
40
40
|
"@arcblock/ux": "^2.9.89",
|
|
41
|
-
"@blocklet/constant": "1.16.27-beta-
|
|
41
|
+
"@blocklet/constant": "1.16.27-beta-74c4e335",
|
|
42
42
|
"@blocklet/launcher-layout": "2.3.20",
|
|
43
43
|
"@blocklet/list": "^0.12.103",
|
|
44
|
-
"@blocklet/meta": "1.16.27-beta-
|
|
44
|
+
"@blocklet/meta": "1.16.27-beta-74c4e335",
|
|
45
45
|
"@blocklet/ui-react": "^2.9.89",
|
|
46
46
|
"@blocklet/uploader": "^0.1.6",
|
|
47
47
|
"@emotion/react": "^11.10.4",
|
|
@@ -104,9 +104,9 @@
|
|
|
104
104
|
"@babel/preset-env": "^7.24.4",
|
|
105
105
|
"@babel/preset-react": "^7.24.1",
|
|
106
106
|
"babel-plugin-inline-react-svg": "^2.0.2",
|
|
107
|
-
"glob": "^10.
|
|
107
|
+
"glob": "^10.4.1",
|
|
108
108
|
"jest": "^29.7.0",
|
|
109
109
|
"jest-environment-jsdom": "^29.7.0"
|
|
110
110
|
},
|
|
111
|
-
"gitHead": "
|
|
111
|
+
"gitHead": "67ac72a88d7ae2d18f0db2b9b439d78e4112e082"
|
|
112
112
|
}
|