@abtnode/ux 1.16.29-beta-ec04c755 → 1.16.29-beta-2eaf40bc
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/component/component-cell.js +3 -0
- package/lib/blocklet/component/domain-list.js +32 -11
- package/lib/blocklet/publish/create-release/header.js +56 -47
- package/lib/blocklet/publish/create-release/index.js +30 -17
- package/lib/blocklet/publish/create-release/uploaded-toast.js +51 -0
- package/lib/locales/ar.js +3 -2
- package/lib/locales/de.js +3 -2
- package/lib/locales/en.js +3 -2
- package/lib/locales/es.js +3 -2
- package/lib/locales/fr.js +3 -2
- package/lib/locales/hi.js +3 -2
- package/lib/locales/i18n.db +0 -0
- package/lib/locales/id.js +3 -2
- package/lib/locales/ja.js +3 -2
- package/lib/locales/ko.js +3 -2
- package/lib/locales/pt.js +3 -2
- package/lib/locales/ru.js +3 -2
- package/lib/locales/th.js +3 -2
- package/lib/locales/vi.js +3 -2
- package/lib/locales/zh-tw.js +3 -2
- package/lib/locales/zh.js +3 -2
- package/lib/store/item.js +10 -9
- package/package.json +17 -17
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import Button from '@arcblock/ux/lib/Button';
|
|
2
2
|
import styled from '@emotion/styled';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import
|
|
4
|
+
import trim from 'lodash/trim';
|
|
5
|
+
import React, { Fragment, useCallback, useMemo, useState } from 'react';
|
|
5
6
|
import AddIcon from '@mui/icons-material/Add';
|
|
6
7
|
import DiamondIcon from '@mui/icons-material/Diamond';
|
|
7
8
|
import ExpandLess from '@mui/icons-material/ExpandLess';
|
|
@@ -16,13 +17,14 @@ import Tooltip from '@mui/material/Tooltip';
|
|
|
16
17
|
import Typography from '@mui/material/Typography';
|
|
17
18
|
import useTheme from '@mui/material/styles/useTheme';
|
|
18
19
|
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
20
|
+
import Spinner from '@mui/material/CircularProgress';
|
|
19
21
|
import { encode as encodeBase32 } from '@abtnode/util/lib/base32';
|
|
20
22
|
import { isDidDomain } from '@abtnode/util/lib/url-evaluation';
|
|
21
23
|
import LockIcon from '@arcblock/icons/lib/LockIcon';
|
|
22
24
|
import Empty from '@arcblock/ux/lib/Empty';
|
|
23
25
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
24
26
|
import { isAccessible, isInProgress } from '@blocklet/meta/lib/util';
|
|
25
|
-
import
|
|
27
|
+
import { CopyButton } from '@arcblock/ux/lib/ClickToCopy';
|
|
26
28
|
import { useBlockletContext } from '../../contexts/blocklet';
|
|
27
29
|
import { useNodeContext } from '../../contexts/node';
|
|
28
30
|
import DidAddress from '../../did-address';
|
|
@@ -278,16 +280,30 @@ function DomainLink({
|
|
|
278
280
|
...rest
|
|
279
281
|
}) {
|
|
280
282
|
const {
|
|
281
|
-
t
|
|
283
|
+
t,
|
|
284
|
+
locale
|
|
282
285
|
} = useLocaleContext();
|
|
283
286
|
const {
|
|
284
287
|
href,
|
|
285
|
-
accessibility
|
|
288
|
+
accessibility,
|
|
289
|
+
value: domainValue
|
|
286
290
|
} = domain;
|
|
291
|
+
const renderCopyButton = useCallback(() => {
|
|
292
|
+
return /*#__PURE__*/_jsx(CopyButton, {
|
|
293
|
+
content: trim(domainValue),
|
|
294
|
+
locale: locale,
|
|
295
|
+
style: {
|
|
296
|
+
marginLeft: '4px',
|
|
297
|
+
color: '#999',
|
|
298
|
+
fontSize: '0.8em',
|
|
299
|
+
verticalAlign: 'bottom'
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}, [domainValue, locale]);
|
|
287
303
|
if (!accessibility || accessibility.loading) {
|
|
288
304
|
return /*#__PURE__*/_jsxs(LinkDiv, {
|
|
289
305
|
...rest,
|
|
290
|
-
children: [children, /*#__PURE__*/_jsx(Tooltip, {
|
|
306
|
+
children: [children, renderCopyButton(), /*#__PURE__*/_jsx(Tooltip, {
|
|
291
307
|
title: t('blocklet.router.checkUrlAccessible'),
|
|
292
308
|
placement: "top-end",
|
|
293
309
|
children: /*#__PURE__*/_jsx("span", {
|
|
@@ -300,25 +316,26 @@ function DomainLink({
|
|
|
300
316
|
});
|
|
301
317
|
}
|
|
302
318
|
if (!accessibility.accessible) {
|
|
303
|
-
return /*#__PURE__*/
|
|
319
|
+
return /*#__PURE__*/_jsxs(LinkDiv, {
|
|
304
320
|
...rest,
|
|
305
|
-
children: /*#__PURE__*/_jsx(Tooltip, {
|
|
321
|
+
children: [/*#__PURE__*/_jsx(Tooltip, {
|
|
306
322
|
title: t('blocklet.router.urlInaccessible'),
|
|
307
323
|
placement: "top-end",
|
|
308
324
|
children: /*#__PURE__*/_jsx("span", {
|
|
309
325
|
children: children
|
|
310
326
|
})
|
|
311
|
-
})
|
|
327
|
+
}), renderCopyButton()]
|
|
312
328
|
});
|
|
313
329
|
}
|
|
314
|
-
return /*#__PURE__*/
|
|
330
|
+
return /*#__PURE__*/_jsxs(LinkDiv, {
|
|
315
331
|
...rest,
|
|
316
|
-
children: /*#__PURE__*/_jsx(
|
|
332
|
+
children: [/*#__PURE__*/_jsx(Box, {
|
|
333
|
+
component: "a",
|
|
317
334
|
href: href,
|
|
318
335
|
target: "_blank",
|
|
319
336
|
rel: "noopener noreferrer",
|
|
320
337
|
children: children
|
|
321
|
-
})
|
|
338
|
+
}), renderCopyButton()]
|
|
322
339
|
});
|
|
323
340
|
}
|
|
324
341
|
DomainLink.propTypes = {
|
|
@@ -330,6 +347,9 @@ const LinkDiv = styled.span`
|
|
|
330
347
|
& > * {
|
|
331
348
|
color: #222;
|
|
332
349
|
font-size: 18px;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
& > * {
|
|
333
353
|
word-break: break-all;
|
|
334
354
|
}
|
|
335
355
|
|
|
@@ -409,6 +429,7 @@ function InnerAddDomain({
|
|
|
409
429
|
onMouseEnter: handlePopoverOpen,
|
|
410
430
|
onMouseLeave: handlePopoverClose,
|
|
411
431
|
style: {
|
|
432
|
+
marginTop: '0.2em',
|
|
412
433
|
cursor: 'pointer',
|
|
413
434
|
fill: theme.palette.primary.main
|
|
414
435
|
}
|
|
@@ -24,6 +24,7 @@ import ClickToCopy from '../../../click-to-copy';
|
|
|
24
24
|
import { formatError } from '../../../util';
|
|
25
25
|
import { useNodeContext } from '../../../contexts/node';
|
|
26
26
|
import ShortenLabel from '../../component/shorten-label';
|
|
27
|
+
import UploadedToast from './uploaded-toast';
|
|
27
28
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
28
29
|
const serverEndpoint = window.env?.serverEndpoint;
|
|
29
30
|
function Header({
|
|
@@ -70,7 +71,7 @@ function Header({
|
|
|
70
71
|
}, '*');
|
|
71
72
|
getRelease();
|
|
72
73
|
};
|
|
73
|
-
const
|
|
74
|
+
const _onRelease = async status => {
|
|
74
75
|
const errors = validateParams({
|
|
75
76
|
params,
|
|
76
77
|
hasSelectedResources,
|
|
@@ -123,7 +124,6 @@ function Header({
|
|
|
123
124
|
});
|
|
124
125
|
return;
|
|
125
126
|
}
|
|
126
|
-
setLoading(true);
|
|
127
127
|
if (initLogoUrl) {
|
|
128
128
|
try {
|
|
129
129
|
const filename = await uploadImageToProject({
|
|
@@ -137,7 +137,6 @@ function Header({
|
|
|
137
137
|
});
|
|
138
138
|
} catch (err) {
|
|
139
139
|
Toast.error(err.message);
|
|
140
|
-
setLoading(false);
|
|
141
140
|
return;
|
|
142
141
|
}
|
|
143
142
|
}
|
|
@@ -164,7 +163,6 @@ function Header({
|
|
|
164
163
|
});
|
|
165
164
|
} catch (err) {
|
|
166
165
|
Toast.error(err?.response?.data?.error?.message || err.message);
|
|
167
|
-
setLoading(false);
|
|
168
166
|
setParamsErrTip({
|
|
169
167
|
blockletResource: 'Invalid save the resource'
|
|
170
168
|
});
|
|
@@ -178,10 +176,8 @@ function Header({
|
|
|
178
176
|
_params.blockletIntroduction = (_params.blockletIntroduction || '').trim();
|
|
179
177
|
_params.note = (_params.note || '').trim();
|
|
180
178
|
_params.blockletComponents = (_params?.blockletComponents || []).filter(x => x.included).map(x => pick(x, ['did', 'required'])).map(JSON.stringify);
|
|
181
|
-
setLoading(true);
|
|
182
|
-
let newReleased = releaseId;
|
|
183
179
|
try {
|
|
184
|
-
|
|
180
|
+
await api.createRelease({
|
|
185
181
|
input: {
|
|
186
182
|
..._params,
|
|
187
183
|
did: blocklet.meta.did,
|
|
@@ -189,8 +185,6 @@ function Header({
|
|
|
189
185
|
releaseId: releaseUsedLast ? '' : releaseId,
|
|
190
186
|
status
|
|
191
187
|
}
|
|
192
|
-
}).finally(() => {
|
|
193
|
-
setLoading(false);
|
|
194
188
|
});
|
|
195
189
|
if (status === 'draft') {
|
|
196
190
|
Toast.success(t('blocklet.publish.saveDraftSuccess'));
|
|
@@ -212,9 +206,6 @@ function Header({
|
|
|
212
206
|
blockletIntroduction: '',
|
|
213
207
|
note: ''
|
|
214
208
|
});
|
|
215
|
-
if (mode === 'create' || mode === 'new-release') {
|
|
216
|
-
newReleased = res?.release?.id;
|
|
217
|
-
}
|
|
218
209
|
} catch (err) {
|
|
219
210
|
const msg = formatError(err);
|
|
220
211
|
Toast.error(msg);
|
|
@@ -224,41 +215,52 @@ function Header({
|
|
|
224
215
|
});
|
|
225
216
|
}
|
|
226
217
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
218
|
+
const lastProject = await api.getProject({
|
|
219
|
+
input: {
|
|
220
|
+
did: blocklet.meta.did,
|
|
221
|
+
projectId
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
const newReleased = lastProject.project.lastReleaseId;
|
|
225
|
+
await pAll(lastProject.project.connectedStores.map(store => {
|
|
226
|
+
return async () => {
|
|
227
|
+
try {
|
|
228
|
+
// eslint-disable-next-line no-await-in-loop
|
|
229
|
+
const res = await api.publishToStore({
|
|
230
|
+
input: {
|
|
231
|
+
did: blocklet.meta.did,
|
|
232
|
+
storeId: store.storeId,
|
|
233
|
+
storeName: store.storeName,
|
|
234
|
+
projectId,
|
|
235
|
+
releaseId: newReleased,
|
|
236
|
+
type: releaseType
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
Toast.success( /*#__PURE__*/_jsx(UploadedToast, {
|
|
234
240
|
storeName: store.storeName,
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}));
|
|
244
|
-
} else if (res.url === 'published') {
|
|
245
|
-
Toast.success(t('blocklet.publish.publishToStoreSuccess', {
|
|
246
|
-
name: store.storeName
|
|
247
|
-
}));
|
|
241
|
+
storeUrl: store.storeUrl,
|
|
242
|
+
developerDid: store.developerDid,
|
|
243
|
+
published: res.url === 'published'
|
|
244
|
+
}), {
|
|
245
|
+
duration: 10000
|
|
246
|
+
});
|
|
247
|
+
} catch (err) {
|
|
248
|
+
Toast.error(formatError(err));
|
|
248
249
|
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
}
|
|
250
|
+
};
|
|
251
|
+
}), {
|
|
252
|
+
concurrency: 4
|
|
253
|
+
});
|
|
253
254
|
onPublish?.();
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
255
|
+
navigate(`../${projectId}/view/${newReleased}`, {
|
|
256
|
+
replace: true
|
|
257
|
+
});
|
|
258
|
+
};
|
|
259
|
+
const onRelease = status => {
|
|
260
|
+
setLoading(true);
|
|
261
|
+
return _onRelease(status).finally(() => {
|
|
262
|
+
setLoading(false);
|
|
263
|
+
});
|
|
262
264
|
};
|
|
263
265
|
const onOpenConnectStore = async param => {
|
|
264
266
|
await waitGetConnectedStore(api, param);
|
|
@@ -405,12 +407,19 @@ function Header({
|
|
|
405
407
|
children: t('common.download')
|
|
406
408
|
})
|
|
407
409
|
}), /*#__PURE__*/_jsxs(Button, {
|
|
410
|
+
disabled: loading,
|
|
408
411
|
variant: "contained",
|
|
409
412
|
onClick: () => setShowStoreDialog(true),
|
|
410
|
-
children: [/*#__PURE__*/_jsx(
|
|
411
|
-
|
|
413
|
+
children: [loading ? /*#__PURE__*/_jsx(Spinner, {
|
|
414
|
+
size: 14,
|
|
415
|
+
sx: {
|
|
416
|
+
mr: 1
|
|
417
|
+
},
|
|
418
|
+
color: "inherit"
|
|
419
|
+
}) : /*#__PURE__*/_jsx(CloudUploadRoundedIcon, {
|
|
420
|
+
sx: {
|
|
412
421
|
fontSize: '1.3em',
|
|
413
|
-
|
|
422
|
+
mr: 1
|
|
414
423
|
}
|
|
415
424
|
}), isMobile ? t('common.upload') : t('blocklet.publish.connectOrUpload')]
|
|
416
425
|
})]
|
|
@@ -5,6 +5,7 @@ import Tabs from '@arcblock/ux/lib/Tabs';
|
|
|
5
5
|
import Toast from '@arcblock/ux/lib/Toast';
|
|
6
6
|
import styled from '@emotion/styled';
|
|
7
7
|
import { Box, FormControlLabel, Radio, RadioGroup, Tooltip, Typography, useMediaQuery } from '@mui/material';
|
|
8
|
+
import { useMemoizedFn } from 'ahooks';
|
|
8
9
|
import pick from 'lodash/pick';
|
|
9
10
|
import PropTypes from 'prop-types';
|
|
10
11
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
@@ -22,9 +23,9 @@ import Branding from './branding';
|
|
|
22
23
|
import Header from './header';
|
|
23
24
|
import Introduction from './introduction';
|
|
24
25
|
import ReleaseStepper from './release-stepper';
|
|
26
|
+
import ResourceUpload from './resource-upload';
|
|
25
27
|
import StopBox from './stop-box';
|
|
26
28
|
import Version from './version';
|
|
27
|
-
import ResourceUpload from './resource-upload';
|
|
28
29
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
29
30
|
const addComponentTabs = ({
|
|
30
31
|
tabs,
|
|
@@ -171,6 +172,29 @@ export default function CreateRelease({
|
|
|
171
172
|
});
|
|
172
173
|
return result;
|
|
173
174
|
}, [resourceComponentsMap]);
|
|
175
|
+
const updateParamsByUrl = useMemoizedFn(() => {
|
|
176
|
+
if (!initUrl) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
setInitLogoUrl(initUrl.searchParams.get('logo'));
|
|
180
|
+
setParams(old => {
|
|
181
|
+
return {
|
|
182
|
+
...old,
|
|
183
|
+
blockletTitle: old?.blockletTitle || initUrl.searchParams.get('title'),
|
|
184
|
+
blockletDescription: old?.blockletDescription || initUrl.searchParams.get('description'),
|
|
185
|
+
blockletIntroduction: old?.blockletIntroduction || initUrl.searchParams.get('introduction') || initUrl.searchParams.get('description'),
|
|
186
|
+
blockletComponents: old?.blockletComponents || JSON.parse(initUrl.searchParams.get('components') || '[]'),
|
|
187
|
+
note: old?.note || initUrl.searchParams.get('note') || 'No note'
|
|
188
|
+
};
|
|
189
|
+
});
|
|
190
|
+
const resourcesString = initUrl.searchParams.get('resources');
|
|
191
|
+
try {
|
|
192
|
+
const resources = JSON.parse(resourcesString);
|
|
193
|
+
setInitialResources(resources);
|
|
194
|
+
} catch (_) {
|
|
195
|
+
//
|
|
196
|
+
}
|
|
197
|
+
});
|
|
174
198
|
const getRelease = async () => {
|
|
175
199
|
if (!releaseId) {
|
|
176
200
|
return;
|
|
@@ -230,6 +254,9 @@ export default function CreateRelease({
|
|
|
230
254
|
}
|
|
231
255
|
const theParams = pickParams(data, blocklet);
|
|
232
256
|
setParams(theParams);
|
|
257
|
+
if (!data.lastReleaseId) {
|
|
258
|
+
updateParamsByUrl();
|
|
259
|
+
}
|
|
233
260
|
} catch (err) {
|
|
234
261
|
setLoading(false);
|
|
235
262
|
Toast.error(formatError(err));
|
|
@@ -262,23 +289,9 @@ export default function CreateRelease({
|
|
|
262
289
|
}, [getData]);
|
|
263
290
|
useEffect(() => {
|
|
264
291
|
if (projectId === UNOWNED_DID && (mode === 'create' || mode === 'new-release') && initUrl) {
|
|
265
|
-
|
|
266
|
-
setParams({
|
|
267
|
-
blockletTitle: initUrl.searchParams.get('title'),
|
|
268
|
-
blockletDescription: initUrl.searchParams.get('description'),
|
|
269
|
-
blockletIntroduction: initUrl.searchParams.get('introduction') || initUrl.searchParams.get('description'),
|
|
270
|
-
blockletComponents: JSON.parse(initUrl.searchParams.get('components') || '[]'),
|
|
271
|
-
note: initUrl.searchParams.get('note') || 'No note'
|
|
272
|
-
});
|
|
273
|
-
const resourcesString = initUrl.searchParams.get('resources');
|
|
274
|
-
try {
|
|
275
|
-
const resources = JSON.parse(resourcesString);
|
|
276
|
-
setInitialResources(resources);
|
|
277
|
-
} catch (_) {
|
|
278
|
-
//
|
|
279
|
-
}
|
|
292
|
+
updateParamsByUrl();
|
|
280
293
|
}
|
|
281
|
-
}, [
|
|
294
|
+
}, [projectId, initUrl, mode, updateParamsByUrl]);
|
|
282
295
|
const hasSelectedResources = useMemo(() => {
|
|
283
296
|
return !!Object.keys(selectedResourceIds).find(key => {
|
|
284
297
|
if (selectedResourceIds[key].length) {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
2
|
+
import { Box, Button, Typography } from '@mui/material';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { joinURL } from 'ufo';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
function UploadedToast({
|
|
7
|
+
storeUrl,
|
|
8
|
+
storeName,
|
|
9
|
+
developerDid,
|
|
10
|
+
published
|
|
11
|
+
}) {
|
|
12
|
+
const {
|
|
13
|
+
t
|
|
14
|
+
} = useLocaleContext();
|
|
15
|
+
const handleOpenUrl = () => {
|
|
16
|
+
if (developerDid) {
|
|
17
|
+
const didConnect = Buffer.from(JSON.stringify({
|
|
18
|
+
forceConnected: developerDid
|
|
19
|
+
}), 'utf8').toString('base64');
|
|
20
|
+
window.open(`${joinURL(storeUrl, 'developer/blocklets')}?__did-connect__=${didConnect}`);
|
|
21
|
+
} else {
|
|
22
|
+
window.open(`${joinURL(storeUrl, 'developer/blocklets')}`);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
return /*#__PURE__*/_jsxs(Box, {
|
|
26
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
27
|
+
variant: "subtitle2",
|
|
28
|
+
children: t(published ? 'blocklet.publish.publishToStoreSuccess' : 'blocklet.publish.uploadToStoreSuccess', {
|
|
29
|
+
name: storeName
|
|
30
|
+
})
|
|
31
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
32
|
+
size: "small",
|
|
33
|
+
sx: {
|
|
34
|
+
mt: 1
|
|
35
|
+
},
|
|
36
|
+
onClick: handleOpenUrl,
|
|
37
|
+
variant: "contained",
|
|
38
|
+
color: "success",
|
|
39
|
+
children: t('common.visitTarget', {
|
|
40
|
+
name: storeName
|
|
41
|
+
})
|
|
42
|
+
})]
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
UploadedToast.propTypes = {
|
|
46
|
+
storeName: PropTypes.string.isRequired,
|
|
47
|
+
storeUrl: PropTypes.string.isRequired,
|
|
48
|
+
developerDid: PropTypes.string.isRequired,
|
|
49
|
+
published: PropTypes.bool.isRequired
|
|
50
|
+
};
|
|
51
|
+
export default UploadedToast;
|
package/lib/locales/ar.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'إعادة الاتصال',
|
|
350
350
|
change: 'تغيير',
|
|
351
351
|
disconnect: 'توقف',
|
|
352
|
-
sourceApp: 'ينتمي إلى التطبيق'
|
|
352
|
+
sourceApp: 'ينتمي إلى التطبيق',
|
|
353
|
+
visitTarget: 'زيارة {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'خارجي',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'احذف {name}',
|
|
702
703
|
copyInstallUrl: 'انسخ عنوان URL للتثبيت',
|
|
703
704
|
install: 'تثبيت {name}',
|
|
704
|
-
publishToStoreSuccess: 'تم نشر البلوكليت بنجاح
|
|
705
|
+
publishToStoreSuccess: 'تم نشر البلوكليت بنجاح على المتجر',
|
|
705
706
|
connectStoreSuccess: 'تم الاتصال بمتجر البلوكليت بنجاح',
|
|
706
707
|
uploadToStoreSuccess: 'تم تحميل بلوكليت بنجاح في المتجر ، تحتاج إلى نشره في المتجر',
|
|
707
708
|
viewLastRelease: 'عرض آخر إصدار',
|
package/lib/locales/de.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'Verbinden wiederherstellen',
|
|
350
350
|
change: 'Ändern',
|
|
351
351
|
disconnect: 'Verbindung trennen',
|
|
352
|
-
sourceApp: 'Zur App gehörend'
|
|
352
|
+
sourceApp: 'Zur App gehörend',
|
|
353
|
+
visitTarget: 'Besuchen Sie {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'Extern',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'Lösche {name}',
|
|
702
703
|
copyInstallUrl: 'Kopiere Installations-URL',
|
|
703
704
|
install: 'Installiere {name}',
|
|
704
|
-
publishToStoreSuccess: 'Blocklet erfolgreich
|
|
705
|
+
publishToStoreSuccess: 'Blocklet erfolgreich im Store veröffentlicht',
|
|
705
706
|
connectStoreSuccess: 'Blocklet Store erfolgreich verbunden',
|
|
706
707
|
uploadToStoreSuccess: 'Blocklet erfolgreich im Store hochgeladen, du musst es im Store veröffentlichen',
|
|
707
708
|
viewLastRelease: 'Letzte Version anzeigen',
|
package/lib/locales/en.js
CHANGED
|
@@ -243,6 +243,7 @@ export default {
|
|
|
243
243
|
notification: 'Notification',
|
|
244
244
|
open: 'Open',
|
|
245
245
|
visitStore: 'Visit Store',
|
|
246
|
+
visitTarget: 'Visit {name}',
|
|
246
247
|
management: 'Management',
|
|
247
248
|
os: 'Operating System',
|
|
248
249
|
overview: 'Overview',
|
|
@@ -738,8 +739,8 @@ export default {
|
|
|
738
739
|
noDescription: 'Blocklet Description is required',
|
|
739
740
|
noNote: 'Release Note is required'
|
|
740
741
|
},
|
|
741
|
-
uploadToStoreSuccess: 'Blocklet upload to
|
|
742
|
-
publishToStoreSuccess: 'Blocklet published to
|
|
742
|
+
uploadToStoreSuccess: 'Blocklet upload to Store successfully, you need publish it in the Store',
|
|
743
|
+
publishToStoreSuccess: 'Blocklet published to Store successfully',
|
|
743
744
|
connectStoreSuccess: 'Blocklet Store connected successfully'
|
|
744
745
|
}
|
|
745
746
|
},
|
package/lib/locales/es.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'Reconecta',
|
|
350
350
|
change: 'Cambiar',
|
|
351
351
|
disconnect: 'Desconectar',
|
|
352
|
-
sourceApp: 'Pertenece a la aplicación'
|
|
352
|
+
sourceApp: 'Pertenece a la aplicación',
|
|
353
|
+
visitTarget: 'Visita {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'Externo',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'Eliminar {name}',
|
|
702
703
|
copyInstallUrl: 'Copiar URL de instalación',
|
|
703
704
|
install: 'Instalar {name}',
|
|
704
|
-
publishToStoreSuccess: '
|
|
705
|
+
publishToStoreSuccess: 'Blocklet publicado en la tienda con éxito',
|
|
705
706
|
connectStoreSuccess: 'La tienda de Blocklet se conectó correctamente',
|
|
706
707
|
uploadToStoreSuccess: 'Bloque de carga a la tienda exitosamente, necesitas publicarlo en la tienda',
|
|
707
708
|
viewLastRelease: 'Ver última versión',
|
package/lib/locales/fr.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'Reconnecter',
|
|
350
350
|
change: 'Changer',
|
|
351
351
|
disconnect: 'Déconnecter',
|
|
352
|
-
sourceApp: "Appartient à l'application"
|
|
352
|
+
sourceApp: "Appartient à l'application",
|
|
353
|
+
visitTarget: 'Visitez {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'Externe',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'Supprimez {name}',
|
|
702
703
|
copyInstallUrl: "Copier l'URL d'installation",
|
|
703
704
|
install: 'Installer {name}',
|
|
704
|
-
publishToStoreSuccess: 'Blocklet publié avec succès sur
|
|
705
|
+
publishToStoreSuccess: 'Blocklet publié avec succès sur le Store',
|
|
705
706
|
connectStoreSuccess: 'Connexion réussie au Blocklet Store',
|
|
706
707
|
uploadToStoreSuccess: 'Blocklet téléchargé avec succès dans le Store, vous devez le publier dans le Store',
|
|
707
708
|
viewLastRelease: 'Voir la dernière version',
|
package/lib/locales/hi.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'पुनः कनेक्ट करें',
|
|
350
350
|
change: 'परिवर्तन',
|
|
351
351
|
disconnect: 'डिस्कनेक्ट करें',
|
|
352
|
-
sourceApp: 'ऐप से संबद्ध'
|
|
352
|
+
sourceApp: 'ऐप से संबद्ध',
|
|
353
|
+
visitTarget: '{name} का दौरा करें'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'बाहरी',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: '{नाम} को हटाएं',
|
|
702
703
|
copyInstallUrl: 'संपादित स्थापित URL की प्रतिलिपि',
|
|
703
704
|
install: '{name} स्थापित करें',
|
|
704
|
-
publishToStoreSuccess: '
|
|
705
|
+
publishToStoreSuccess: 'ब्लॉकलेट सफलतापूर्वक स्टोर पर प्रकाशित किया गया',
|
|
705
706
|
connectStoreSuccess: 'ब्लॉकलेट स्टोर सफलतापूर्वक कनेक्ट हो गया',
|
|
706
707
|
uploadToStoreSuccess: 'ब्लॉकलेट को स्टोर में सफलतापूर्वक अपलोड किया गया है, आपको इसे स्टोर में प्रकाशित करने की आवश्यकता है',
|
|
707
708
|
viewLastRelease: 'अंतिम रिलीज़ देखें',
|
package/lib/locales/i18n.db
CHANGED
|
Binary file
|
package/lib/locales/id.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'Menghubungkan kembali',
|
|
350
350
|
change: 'Perubahan',
|
|
351
351
|
disconnect: 'Putuskan Sambungan',
|
|
352
|
-
sourceApp: 'Milik aplikasi'
|
|
352
|
+
sourceApp: 'Milik aplikasi',
|
|
353
|
+
visitTarget: 'Kunjungi {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'Eksternal',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'Hapus {name}',
|
|
702
703
|
copyInstallUrl: 'Salin URL Instalasi',
|
|
703
704
|
install: 'Pasang {name}',
|
|
704
|
-
publishToStoreSuccess: 'Blocklet berhasil diterbitkan ke
|
|
705
|
+
publishToStoreSuccess: 'Blocklet berhasil diterbitkan ke Toko',
|
|
705
706
|
connectStoreSuccess: 'Penyimpanan Blocklet berhasil terhubung',
|
|
706
707
|
uploadToStoreSuccess: 'Blocklet berhasil diunggah ke Store, Anda perlu mempublikasikannya di Store',
|
|
707
708
|
viewLastRelease: 'Tampilkan rilis terakhir',
|
package/lib/locales/ja.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: '再接続する',
|
|
350
350
|
change: '変更',
|
|
351
351
|
disconnect: '接続を切る',
|
|
352
|
-
sourceApp: 'このアプリに所属'
|
|
352
|
+
sourceApp: 'このアプリに所属',
|
|
353
|
+
visitTarget: '訪問{name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: '外部',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: '削除 {name}',
|
|
702
703
|
copyInstallUrl: 'インストールURLをコピーする',
|
|
703
704
|
install: '{name}をインストールする',
|
|
704
|
-
publishToStoreSuccess: '
|
|
705
|
+
publishToStoreSuccess: 'Blockletがストアに正常に公開されました',
|
|
705
706
|
connectStoreSuccess: 'Blockletストアが正常に接続されました',
|
|
706
707
|
uploadToStoreSuccess: 'ブロックレットがストアに正常にアップロードされました。ストアで公開する必要があります',
|
|
707
708
|
viewLastRelease: '最新リリースを表示する',
|
package/lib/locales/ko.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: '재연결',
|
|
350
350
|
change: '변경',
|
|
351
351
|
disconnect: '연결 끊기',
|
|
352
|
-
sourceApp: '앱에 속함'
|
|
352
|
+
sourceApp: '앱에 속함',
|
|
353
|
+
visitTarget: '{name}를 방문하다'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: '외부의',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: '{name} 삭제',
|
|
702
703
|
copyInstallUrl: '설치 URL 복사하기',
|
|
703
704
|
install: '{name}을(를) 설치하세요',
|
|
704
|
-
publishToStoreSuccess: '
|
|
705
|
+
publishToStoreSuccess: 'Store에 성공적으로 발행된 Blocklet',
|
|
705
706
|
connectStoreSuccess: '블록렛 스토어가 성공적으로 연결되었습니다',
|
|
706
707
|
uploadToStoreSuccess: '블록렛이 성공적으로 스토어에 업로드되었습니다. 스토어에서 게시해야 합니다',
|
|
707
708
|
viewLastRelease: '최신 릴리스 보기',
|
package/lib/locales/pt.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'Reconectar',
|
|
350
350
|
change: 'Mudança',
|
|
351
351
|
disconnect: 'Desconectar',
|
|
352
|
-
sourceApp: 'Pertence ao app'
|
|
352
|
+
sourceApp: 'Pertence ao app',
|
|
353
|
+
visitTarget: 'Visite {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'Externo',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'Excluir {name}',
|
|
702
703
|
copyInstallUrl: 'Copiar URL de instalação',
|
|
703
704
|
install: 'Instale {name}',
|
|
704
|
-
publishToStoreSuccess: 'Blocklet publicado
|
|
705
|
+
publishToStoreSuccess: 'Blocklet publicado na Loja com sucesso',
|
|
705
706
|
connectStoreSuccess: 'Loja de Blocos conectada com sucesso',
|
|
706
707
|
uploadToStoreSuccess: 'Blocklet enviado para a Store com sucesso, você precisa publicá-lo na Store',
|
|
707
708
|
viewLastRelease: 'Visualizar última versão',
|
package/lib/locales/ru.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'Восстановить соединение',
|
|
350
350
|
change: 'Изменение',
|
|
351
351
|
disconnect: 'Отсоединить',
|
|
352
|
-
sourceApp: 'Принадлежит приложению'
|
|
352
|
+
sourceApp: 'Принадлежит приложению',
|
|
353
|
+
visitTarget: 'Посетите {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'Внешний',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'Удалить {name}',
|
|
702
703
|
copyInstallUrl: 'Скопируйте URL для установки',
|
|
703
704
|
install: 'Установить {name}',
|
|
704
|
-
publishToStoreSuccess: 'Блоклет успешно опубликован
|
|
705
|
+
publishToStoreSuccess: 'Блоклет успешно опубликован в магазине',
|
|
705
706
|
connectStoreSuccess: 'Успешное подключение к Blocklet Store',
|
|
706
707
|
uploadToStoreSuccess: 'Блоклет успешно загружен в магазин, вам нужно опубликовать его в магазине',
|
|
707
708
|
viewLastRelease: 'Просмотр последнего релиза',
|
package/lib/locales/th.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'เชื่อมต่อใหม่',
|
|
350
350
|
change: 'เปลี่ยนแปลง',
|
|
351
351
|
disconnect: 'ตัดการเชื่อมต่อ',
|
|
352
|
-
sourceApp: 'เป็นของแอป'
|
|
352
|
+
sourceApp: 'เป็นของแอป',
|
|
353
|
+
visitTarget: 'เข้าชม {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'ภายนอก',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'ลบ {name}',
|
|
702
703
|
copyInstallUrl: 'คัดลอก URL การติดตั้ง',
|
|
703
704
|
install: 'ติดตั้ง {name}',
|
|
704
|
-
publishToStoreSuccess: 'Blocklet
|
|
705
|
+
publishToStoreSuccess: 'Blocklet ได้รับการเผยแพร่ในร้านค้าเรียบร้อยแล้ว',
|
|
705
706
|
connectStoreSuccess: 'เชื่อมต่อ Blocklet Store สำเร็จ',
|
|
706
707
|
uploadToStoreSuccess: 'อัพโหลด Blocklet เข้าสู่ Store สำเร็จแล้ว คุณต้องเผยแพร่ในร้านค้า',
|
|
707
708
|
viewLastRelease: 'ดูรายการอัพเดตล่าสุด',
|
package/lib/locales/vi.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: 'Kết nối lại',
|
|
350
350
|
change: 'Thay đổi',
|
|
351
351
|
disconnect: 'Ngắt kết nối',
|
|
352
|
-
sourceApp: 'Thuộc về ứng dụng'
|
|
352
|
+
sourceApp: 'Thuộc về ứng dụng',
|
|
353
|
+
visitTarget: 'Ghé thăm {name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: 'Bên ngoài',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: 'Xóa {name}',
|
|
702
703
|
copyInstallUrl: 'Sao chép URL cài đặt',
|
|
703
704
|
install: 'Cài đặt {name}',
|
|
704
|
-
publishToStoreSuccess: 'Blocklet đã được xuất bản thành công
|
|
705
|
+
publishToStoreSuccess: 'Blocklet đã được xuất bản lên Cửa hàng thành công',
|
|
705
706
|
connectStoreSuccess: 'Kết nối Blocklet Store thành công',
|
|
706
707
|
uploadToStoreSuccess: 'Blocklet đã tải lên Store thành công, bạn cần phải xuất bản nó trong Store',
|
|
707
708
|
viewLastRelease: 'Xem phiên bản phát hành gần đây nhất',
|
package/lib/locales/zh-tw.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: '重新連接',
|
|
350
350
|
change: '更改',
|
|
351
351
|
disconnect: '斷開連線',
|
|
352
|
-
sourceApp: '屬於此 App'
|
|
352
|
+
sourceApp: '屬於此 App',
|
|
353
|
+
visitTarget: '拜訪{name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: '外部的',
|
|
@@ -701,7 +702,7 @@ export default {
|
|
|
701
702
|
delete: '刪除 {name}',
|
|
702
703
|
copyInstallUrl: '複製安裝連結',
|
|
703
704
|
install: '安裝{name}',
|
|
704
|
-
publishToStoreSuccess: '
|
|
705
|
+
publishToStoreSuccess: '成功發佈到商店的Blocklet',
|
|
705
706
|
connectStoreSuccess: 'Store 連線成功',
|
|
706
707
|
uploadToStoreSuccess: 'Blocklet 成功上傳至 Store,請在 Store 中發布',
|
|
707
708
|
viewLastRelease: '查看最新版本',
|
package/lib/locales/zh.js
CHANGED
|
@@ -349,7 +349,8 @@ export default {
|
|
|
349
349
|
reconnect: '重新连接',
|
|
350
350
|
change: '更改',
|
|
351
351
|
sourceApp: '所属应用',
|
|
352
|
-
disconnect: '断开连接'
|
|
352
|
+
disconnect: '断开连接',
|
|
353
|
+
visitTarget: '访问{name}'
|
|
353
354
|
},
|
|
354
355
|
blocklet: {
|
|
355
356
|
external: '外部',
|
|
@@ -703,7 +704,7 @@ export default {
|
|
|
703
704
|
delete: '删除 {name}',
|
|
704
705
|
copyInstallUrl: '复制安装链接',
|
|
705
706
|
install: '安装 {name}',
|
|
706
|
-
publishToStoreSuccess: '
|
|
707
|
+
publishToStoreSuccess: '成功发布到商店的Blocklet',
|
|
707
708
|
connectStoreSuccess: 'Blocklet 成功连接 Store',
|
|
708
709
|
uploadToStoreSuccess: 'Blocklet 成功上传至 Store,请在 Store 中发布',
|
|
709
710
|
viewLastRelease: '查看最新版本',
|
package/lib/store/item.js
CHANGED
|
@@ -16,6 +16,7 @@ import ConnectActions from './connect-actions';
|
|
|
16
16
|
import DidAddress from '../did-address';
|
|
17
17
|
import usePromiseWindowOpen from '../hooks/use-promise-window-open';
|
|
18
18
|
import DeveloperAvatar from './developer-avatar';
|
|
19
|
+
import UploadedToast from '../blocklet/publish/create-release/uploaded-toast';
|
|
19
20
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
21
|
export const BEHAVIOR = {
|
|
21
22
|
CONNECT: 'connect',
|
|
@@ -190,15 +191,14 @@ export default function StoreItem({
|
|
|
190
191
|
type: releaseType
|
|
191
192
|
}
|
|
192
193
|
}).then(res => {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}
|
|
194
|
+
Toast.success( /*#__PURE__*/_jsx(UploadedToast, {
|
|
195
|
+
storeName: connectedStore.storeName,
|
|
196
|
+
storeUrl: connectedStore.storeUrl,
|
|
197
|
+
developerDid: connectedStore.developerDid,
|
|
198
|
+
published: res.url === 'published'
|
|
199
|
+
}), {
|
|
200
|
+
duration: 10000
|
|
201
|
+
});
|
|
202
202
|
onPublish?.(null);
|
|
203
203
|
}).catch(err => {
|
|
204
204
|
Toast.error(formatError(err));
|
|
@@ -390,6 +390,7 @@ StoreItem.propTypes = {
|
|
|
390
390
|
teamDid: PropTypes.string.isRequired,
|
|
391
391
|
published: PropTypes.bool,
|
|
392
392
|
connectedStore: PropTypes.shape({
|
|
393
|
+
storeName: PropTypes.string,
|
|
393
394
|
storeId: PropTypes.string,
|
|
394
395
|
storeUrl: PropTypes.string,
|
|
395
396
|
developerDid: PropTypes.string,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abtnode/ux",
|
|
3
|
-
"version": "1.16.29-beta-
|
|
3
|
+
"version": "1.16.29-beta-2eaf40bc",
|
|
4
4
|
"description": "UX components shared across abtnode packages",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -25,24 +25,24 @@
|
|
|
25
25
|
"author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
|
|
26
26
|
"license": "Apache-2.0",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@abtnode/auth": "1.16.29-beta-
|
|
29
|
-
"@abtnode/constant": "1.16.29-beta-
|
|
30
|
-
"@abtnode/util": "1.16.29-beta-
|
|
28
|
+
"@abtnode/auth": "1.16.29-beta-2eaf40bc",
|
|
29
|
+
"@abtnode/constant": "1.16.29-beta-2eaf40bc",
|
|
30
|
+
"@abtnode/util": "1.16.29-beta-2eaf40bc",
|
|
31
31
|
"@ahooksjs/use-url-state": "^3.5.1",
|
|
32
32
|
"@arcblock/did": "^1.18.126",
|
|
33
|
-
"@arcblock/did-connect": "^2.10.
|
|
33
|
+
"@arcblock/did-connect": "^2.10.5",
|
|
34
34
|
"@arcblock/did-motif": "^1.1.13",
|
|
35
|
-
"@arcblock/icons": "^2.10.
|
|
36
|
-
"@arcblock/nft-display": "2.10.
|
|
37
|
-
"@arcblock/react-hooks": "^2.10.
|
|
38
|
-
"@arcblock/terminal": "^2.10.
|
|
39
|
-
"@arcblock/ux": "^2.10.
|
|
40
|
-
"@blocklet/constant": "1.16.29-beta-
|
|
41
|
-
"@blocklet/js-sdk": "1.16.29-beta-
|
|
42
|
-
"@blocklet/launcher-layout": "2.3.
|
|
43
|
-
"@blocklet/list": "^0.13.
|
|
44
|
-
"@blocklet/meta": "1.16.29-beta-
|
|
45
|
-
"@blocklet/ui-react": "^2.10.
|
|
35
|
+
"@arcblock/icons": "^2.10.5",
|
|
36
|
+
"@arcblock/nft-display": "2.10.5",
|
|
37
|
+
"@arcblock/react-hooks": "^2.10.5",
|
|
38
|
+
"@arcblock/terminal": "^2.10.5",
|
|
39
|
+
"@arcblock/ux": "^2.10.5",
|
|
40
|
+
"@blocklet/constant": "1.16.29-beta-2eaf40bc",
|
|
41
|
+
"@blocklet/js-sdk": "1.16.29-beta-2eaf40bc",
|
|
42
|
+
"@blocklet/launcher-layout": "2.3.30",
|
|
43
|
+
"@blocklet/list": "^0.13.9",
|
|
44
|
+
"@blocklet/meta": "1.16.29-beta-2eaf40bc",
|
|
45
|
+
"@blocklet/ui-react": "^2.10.5",
|
|
46
46
|
"@blocklet/uploader": "0.1.19",
|
|
47
47
|
"@emotion/react": "^11.10.4",
|
|
48
48
|
"@emotion/styled": "^11.10.4",
|
|
@@ -108,5 +108,5 @@
|
|
|
108
108
|
"jest": "^29.7.0",
|
|
109
109
|
"jest-environment-jsdom": "^29.7.0"
|
|
110
110
|
},
|
|
111
|
-
"gitHead": "
|
|
111
|
+
"gitHead": "d723d07ca8914468fc1b53af23aa53dc343e0a8c"
|
|
112
112
|
}
|