@abtnode/ux 1.16.25-next-bc2f4c63 → 1.16.26-beta-e0056285
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/es/analytics/disk.js +8 -11
- package/es/analytics/memory.js +1 -2
- package/es/analytics/runtime.js +1 -2
- package/es/analytics/traffic.js +1 -2
- package/es/blocklet/actions.js +11 -1
- package/es/blocklet/component/add-component-core.js +8 -0
- package/es/blocklet/component/component-cell.js +2 -1
- package/es/blocklet/component/select-store.js +8 -4
- package/es/blocklet/disk-info.js +1 -1
- package/es/blocklet/icons.js +3 -1
- package/es/blocklet/overview.js +13 -7
- package/es/blocklet/publish/connect-store-list.js +62 -0
- package/es/blocklet/publish/create-release.js +192 -49
- package/es/blocklet/publish/index.js +0 -4
- package/es/blocklet/publish/project-list.js +133 -29
- package/es/blocklet/publish/release-list.js +19 -5
- package/es/blocklet/publish/resource.js +46 -34
- package/es/blocklet/publish/select-components.js +3 -3
- package/es/blocklet/router/rule-list.js +2 -1
- package/es/locales/ar.js +23 -10
- package/es/locales/de.js +22 -9
- package/es/locales/en.js +21 -10
- package/es/locales/es.js +22 -9
- package/es/locales/fr.js +22 -9
- package/es/locales/hi.js +22 -9
- package/es/locales/i18n.db +0 -0
- package/es/locales/id.js +23 -10
- package/es/locales/ja.js +23 -10
- package/es/locales/ko.js +23 -10
- package/es/locales/pt.js +22 -9
- package/es/locales/ru.js +22 -9
- package/es/locales/th.js +22 -9
- package/es/locales/vi.js +23 -10
- package/es/locales/zh-tw.js +22 -9
- package/es/locales/zh.js +27 -14
- package/es/store/add.js +1 -0
- package/es/store/delete.js +9 -4
- package/es/store/item.js +233 -36
- package/es/team/members/connections.js +2 -1
- package/es/team/members/member.js +2 -1
- package/es/util/index.js +8 -8
- package/lib/analytics/disk.js +7 -10
- package/lib/analytics/memory.js +5 -6
- package/lib/analytics/runtime.js +1 -2
- package/lib/analytics/traffic.js +2 -3
- package/lib/blocklet/actions.js +14 -2
- package/lib/blocklet/component/add-component-core.js +4 -1
- package/lib/blocklet/component/component-cell.js +2 -1
- package/lib/blocklet/component/select-store.js +8 -4
- package/lib/blocklet/disk-info.js +2 -2
- package/lib/blocklet/icons.js +3 -1
- package/lib/blocklet/overview.js +13 -7
- package/lib/blocklet/publish/connect-store-list.js +72 -0
- package/lib/blocklet/publish/create-release.js +194 -47
- package/lib/blocklet/publish/index.js +0 -4
- package/lib/blocklet/publish/project-list.js +133 -29
- package/lib/blocklet/publish/release-list.js +19 -5
- package/lib/blocklet/publish/resource.js +45 -33
- package/lib/blocklet/publish/select-components.js +3 -3
- package/lib/blocklet/router/rule-list.js +2 -1
- package/lib/locales/ar.js +23 -10
- package/lib/locales/de.js +22 -9
- package/lib/locales/en.js +21 -10
- package/lib/locales/es.js +22 -9
- package/lib/locales/fr.js +22 -9
- package/lib/locales/hi.js +22 -9
- package/lib/locales/i18n.db +0 -0
- package/lib/locales/id.js +23 -10
- package/lib/locales/ja.js +23 -10
- package/lib/locales/ko.js +23 -10
- package/lib/locales/pt.js +22 -9
- package/lib/locales/ru.js +22 -9
- package/lib/locales/th.js +22 -9
- package/lib/locales/vi.js +23 -10
- package/lib/locales/zh-tw.js +22 -9
- package/lib/locales/zh.js +27 -14
- package/lib/store/add.js +1 -0
- package/lib/store/delete.js +9 -4
- package/lib/store/item.js +233 -37
- package/lib/team/members/connections.js +2 -1
- package/lib/team/members/member.js +2 -1
- package/lib/util/index.js +14 -13
- package/package.json +17 -17
- package/es/blocklet/publish/create-project.js +0 -205
- package/lib/blocklet/publish/create-project.js +0 -215
|
@@ -21,15 +21,18 @@ var _DeleteOutline = _interopRequireDefault(require("@mui/icons-material/DeleteO
|
|
|
21
21
|
var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
|
|
22
22
|
var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
|
|
23
23
|
var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
|
|
24
|
+
var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
|
|
24
25
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
25
26
|
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
26
27
|
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
27
28
|
var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
|
|
28
29
|
var _Tabs = _interopRequireDefault(require("@arcblock/ux/lib/Tabs"));
|
|
30
|
+
var _Dialog2 = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
|
|
29
31
|
var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
|
|
30
32
|
var _constant = require("@blocklet/constant");
|
|
31
33
|
var _constant2 = require("@abtnode/constant");
|
|
32
34
|
var _bundleAvatar = _interopRequireDefault(require("../bundle-avatar"));
|
|
35
|
+
var _session = require("../../contexts/session");
|
|
33
36
|
var _node = require("../../contexts/node");
|
|
34
37
|
var _blocklet = require("../../contexts/blocklet");
|
|
35
38
|
var _emptySpinner = _interopRequireDefault(require("../../empty-spinner"));
|
|
@@ -37,6 +40,7 @@ var _clickToCopy = _interopRequireDefault(require("../../click-to-copy"));
|
|
|
37
40
|
var _util = require("../../util");
|
|
38
41
|
var _resource = _interopRequireDefault(require("./resource"));
|
|
39
42
|
var _selectComponents = _interopRequireDefault(require("./select-components"));
|
|
43
|
+
var _connectStoreList = _interopRequireDefault(require("./connect-store-list"));
|
|
40
44
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
41
45
|
var _window$env, _templateObject;
|
|
42
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -121,13 +125,14 @@ const addComponentTabs = _ref => {
|
|
|
121
125
|
});
|
|
122
126
|
};
|
|
123
127
|
const pickParams = (release, app) => {
|
|
124
|
-
const params = (0, _pick.default)(release, ['blockletVersion', 'blockletTitle', 'blockletDescription', 'blockletLogo', 'blockletIntroduction', 'blockletScreenshots', 'blockletComponents', 'note']);
|
|
128
|
+
const params = (0, _pick.default)(release, ['blockletVersion', 'blockletTitle', 'blockletDescription', 'blockletLogo', 'blockletIntroduction', 'blockletScreenshots', 'blockletComponents', 'publishedStoreIds', 'note']);
|
|
125
129
|
params.blockletScreenshots || (params.blockletScreenshots = []);
|
|
130
|
+
params.publishedStoreIds || (params.publishedStoreIds = []);
|
|
126
131
|
if (!params.blockletComponents) {
|
|
127
132
|
params.blockletComponents = (app.children || []).map(x => ({
|
|
128
133
|
did: x.meta.did,
|
|
129
|
-
included:
|
|
130
|
-
required:
|
|
134
|
+
included: false,
|
|
135
|
+
required: false
|
|
131
136
|
}));
|
|
132
137
|
} else {
|
|
133
138
|
params.blockletComponents = params.blockletComponents.map(x => _objectSpread(_objectSpread({}, x), {}, {
|
|
@@ -137,17 +142,21 @@ const pickParams = (release, app) => {
|
|
|
137
142
|
return params;
|
|
138
143
|
};
|
|
139
144
|
function CreateRelease(_ref2) {
|
|
140
|
-
var _tabs$, _params$blockletIntro, _params$note;
|
|
145
|
+
var _tabs$, _params$blockletIntro, _params$note, _params$blockletCompo3;
|
|
141
146
|
let rest = Object.assign({}, (_objectDestructuringEmpty(_ref2), _ref2));
|
|
142
147
|
const navigate = (0, _reactRouterDom.useNavigate)();
|
|
143
148
|
const {
|
|
144
149
|
projectId,
|
|
145
150
|
releaseId: inputReleaseId,
|
|
146
|
-
componentDid
|
|
151
|
+
componentDid = ''
|
|
147
152
|
} = (0, _reactRouterDom.useParams)();
|
|
148
153
|
const {
|
|
149
|
-
t
|
|
154
|
+
t,
|
|
155
|
+
locale
|
|
150
156
|
} = (0, _context.useLocaleContext)();
|
|
157
|
+
const {
|
|
158
|
+
api: sessionApi
|
|
159
|
+
} = (0, _session.useSessionContext)();
|
|
151
160
|
const {
|
|
152
161
|
blocklet
|
|
153
162
|
} = (0, _blocklet.useBlockletContext)();
|
|
@@ -161,10 +170,15 @@ function CreateRelease(_ref2) {
|
|
|
161
170
|
} = (0, _node.useNodeContext)();
|
|
162
171
|
const uploaderLogoRef = (0, _react.useRef)(null);
|
|
163
172
|
const uploaderScreenshotRef = (0, _react.useRef)(null);
|
|
164
|
-
const [projectType, setProjectType] = (0, _react.useState)();
|
|
165
173
|
const [installResourceTip, setInstallResourceTip] = (0, _react.useState)();
|
|
174
|
+
const [openConnect, setOpenConnect] = (0, _react.useState)(false);
|
|
175
|
+
const [showStoreDialog, setShowStoreDialog] = (0, _react.useState)(false);
|
|
166
176
|
const releaseId = inputReleaseId === 'create' ? '' : inputReleaseId;
|
|
167
177
|
const mode = inputReleaseId === 'create' ? 'create' : 'edit';
|
|
178
|
+
const projectType = (0, _react.useMemo)(() => {
|
|
179
|
+
var _params$blockletCompo;
|
|
180
|
+
return params !== null && params !== void 0 && (_params$blockletCompo = params.blockletComponents) !== null && _params$blockletCompo !== void 0 && _params$blockletCompo.some(x => x.included) ? 'pack' : 'resource';
|
|
181
|
+
}, [params === null || params === void 0 ? void 0 : params.blockletComponents]);
|
|
168
182
|
const tabs = [];
|
|
169
183
|
const resourceComponents = ((blocklet === null || blocklet === void 0 ? void 0 : blocklet.children) || []).filter(x => {
|
|
170
184
|
var _x$meta$resource;
|
|
@@ -181,10 +195,18 @@ function CreateRelease(_ref2) {
|
|
|
181
195
|
const [tab, setTab] = (0, _react.useState)((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.value);
|
|
182
196
|
const isPublished = (release === null || release === void 0 ? void 0 : release.status) === 'published';
|
|
183
197
|
const readOnly = isPublished;
|
|
184
|
-
const getProject =
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
198
|
+
const getProject = () => {
|
|
199
|
+
if (projectId === _constant2.UNOWNED_DID) {
|
|
200
|
+
setParams({
|
|
201
|
+
blockletVersion: '1.0.0',
|
|
202
|
+
blockletTitle: ''
|
|
203
|
+
});
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (!projectId) {
|
|
207
|
+
_Toast.default.error(t('blocklet.publish.errorTip.noDid'));
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
188
210
|
api.getProject({
|
|
189
211
|
input: {
|
|
190
212
|
did: blocklet.meta.did,
|
|
@@ -193,17 +215,16 @@ function CreateRelease(_ref2) {
|
|
|
193
215
|
}).then(res => {
|
|
194
216
|
setLoading(false);
|
|
195
217
|
const data = res.project || {};
|
|
196
|
-
if (typeOnly) {
|
|
197
|
-
setProjectType(data.type);
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
218
|
if (!data.blockletVersion) {
|
|
201
219
|
data.blockletVersion = '1.0.0';
|
|
202
220
|
} else if (_semver.default.valid(data.blockletVersion)) {
|
|
203
221
|
data.blockletVersion = _semver.default.inc(data.blockletVersion, 'patch');
|
|
204
222
|
}
|
|
205
|
-
|
|
206
|
-
|
|
223
|
+
const theParams = pickParams(data, blocklet);
|
|
224
|
+
if (theParams.blockletTitle === projectId.slice(0, 8)) {
|
|
225
|
+
theParams.blockletTitle = '';
|
|
226
|
+
}
|
|
227
|
+
setParams(theParams);
|
|
207
228
|
}).catch(err => {
|
|
208
229
|
setLoading(false);
|
|
209
230
|
_Toast.default.error((0, _util.formatError)(err));
|
|
@@ -232,19 +253,17 @@ function CreateRelease(_ref2) {
|
|
|
232
253
|
return;
|
|
233
254
|
}
|
|
234
255
|
getRelease();
|
|
235
|
-
getProject({
|
|
236
|
-
typeOnly: true
|
|
237
|
-
});
|
|
238
256
|
}
|
|
239
257
|
if (mode === 'create') {
|
|
240
258
|
getProject();
|
|
241
259
|
}
|
|
242
260
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
243
261
|
}, [mode, releaseId]);
|
|
244
|
-
(0, _react.useEffect)(() => {
|
|
245
|
-
getData();
|
|
246
|
-
}, [getData]);
|
|
247
262
|
const onRelease = status => {
|
|
263
|
+
if (!projectId || projectId === _constant2.UNOWNED_DID) {
|
|
264
|
+
_Toast.default.error(t('blocklet.publish.errorTip.noDid'));
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
248
267
|
const errors = validateParams(params, status, t);
|
|
249
268
|
if (errors) {
|
|
250
269
|
_Toast.default.error(errors.map(x => x.message).join('; '));
|
|
@@ -266,11 +285,7 @@ function CreateRelease(_ref2) {
|
|
|
266
285
|
_params.blockletDescription = (_params.blockletDescription || '').trim();
|
|
267
286
|
_params.blockletIntroduction = (_params.blockletIntroduction || '').trim();
|
|
268
287
|
_params.note = (_params.note || '').trim();
|
|
269
|
-
|
|
270
|
-
_params.blockletComponents = (_params.blockletComponents || []).filter(x => x.included).map(x => (0, _pick.default)(x, ['did', 'required'])).map(JSON.stringify);
|
|
271
|
-
} else {
|
|
272
|
-
delete _params.blockletComponents;
|
|
273
|
-
}
|
|
288
|
+
_params.blockletComponents = (_params.blockletComponents || []).filter(x => x.included).map(x => (0, _pick.default)(x, ['did', 'required'])).map(JSON.stringify);
|
|
274
289
|
setCreateLoading(status);
|
|
275
290
|
setLoading(true);
|
|
276
291
|
api.createRelease({
|
|
@@ -309,12 +324,98 @@ function CreateRelease(_ref2) {
|
|
|
309
324
|
}
|
|
310
325
|
});
|
|
311
326
|
};
|
|
327
|
+
const handleDidConnectShow = e => {
|
|
328
|
+
e.preventDefault();
|
|
329
|
+
e.stopPropagation();
|
|
330
|
+
if (!params.blockletTitle) {
|
|
331
|
+
setParamsErrTip({
|
|
332
|
+
blockletTitle: t('blocklet.publish.errorTip.noTitle')
|
|
333
|
+
});
|
|
334
|
+
_Toast.default.error(t('blocklet.publish.errorTip.noTitle'));
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
if (!projectId || projectId === _constant2.UNOWNED_DID) {
|
|
338
|
+
setOpenConnect(true);
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
const handleDidConnectClose = () => {
|
|
342
|
+
setOpenConnect(false);
|
|
343
|
+
};
|
|
344
|
+
const handleChangeSelectedComponents = data => {
|
|
345
|
+
setParams({
|
|
346
|
+
blockletComponents: data
|
|
347
|
+
});
|
|
348
|
+
};
|
|
349
|
+
const handleCreateBlockletDidError = err => {
|
|
350
|
+
_Toast.default.error(err.message);
|
|
351
|
+
setOpenConnect(false);
|
|
352
|
+
};
|
|
353
|
+
const handleCreate = nextProjectDid => {
|
|
354
|
+
var _params$blockletCompo2;
|
|
355
|
+
if (!nextProjectDid) {
|
|
356
|
+
_Toast.default.error(t('blocklet.publish.errorTip.noDid'));
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
setLoading(true);
|
|
360
|
+
api.createProject({
|
|
361
|
+
input: {
|
|
362
|
+
did: blocklet.meta.did,
|
|
363
|
+
blockletTitle: params.blockletTitle || nextProjectDid.slice(0, 9),
|
|
364
|
+
blockletDid: nextProjectDid,
|
|
365
|
+
type: ((_params$blockletCompo2 = params.blockletComponents) === null || _params$blockletCompo2 === void 0 ? void 0 : _params$blockletCompo2.length) > 0 ? 'pack' : 'resource',
|
|
366
|
+
componentDid
|
|
367
|
+
}
|
|
368
|
+
}).then(() => {
|
|
369
|
+
setLoading(false);
|
|
370
|
+
navigate(window.location.pathname.replace("".concat(_constant2.UNOWNED_DID, "/create"), "".concat(nextProjectDid, "/create")), {
|
|
371
|
+
replace: true
|
|
372
|
+
});
|
|
373
|
+
}).catch(err => {
|
|
374
|
+
setLoading(false);
|
|
375
|
+
_Toast.default.error(err.message);
|
|
376
|
+
});
|
|
377
|
+
};
|
|
378
|
+
const handleCreateBlockletDidSuccess = result => {
|
|
379
|
+
var _result$blockletWalle;
|
|
380
|
+
const did = result === null || result === void 0 || (_result$blockletWalle = result.blockletWallet) === null || _result$blockletWalle === void 0 ? void 0 : _result$blockletWalle.address;
|
|
381
|
+
if (!did) {
|
|
382
|
+
_Toast.default.error('Empty Blocklet DID');
|
|
383
|
+
} else {
|
|
384
|
+
handleCreate(did);
|
|
385
|
+
}
|
|
386
|
+
setOpenConnect(false);
|
|
387
|
+
};
|
|
388
|
+
(0, _react.useEffect)(() => {
|
|
389
|
+
getData();
|
|
390
|
+
}, [getData]);
|
|
312
391
|
if (!params && loading) {
|
|
313
392
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_emptySpinner.default, {});
|
|
314
393
|
}
|
|
315
394
|
if (!params) {
|
|
316
395
|
return null;
|
|
317
396
|
}
|
|
397
|
+
const connect = openConnect ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, {
|
|
398
|
+
open: true,
|
|
399
|
+
popup: true,
|
|
400
|
+
onClose: handleDidConnectClose,
|
|
401
|
+
action: "gen-blocklet-key-pair",
|
|
402
|
+
locale: locale,
|
|
403
|
+
checkFn: sessionApi.get,
|
|
404
|
+
saveConnect: false,
|
|
405
|
+
forceConnected: false,
|
|
406
|
+
checkTimeout: 5 * 60 * 1000,
|
|
407
|
+
onSuccess: handleCreateBlockletDidSuccess,
|
|
408
|
+
onError: handleCreateBlockletDidError,
|
|
409
|
+
extraParams: {
|
|
410
|
+
did: blocklet.meta.did
|
|
411
|
+
},
|
|
412
|
+
messages: {
|
|
413
|
+
title: t('blocklet.publish.connect.title'),
|
|
414
|
+
scan: t('blocklet.publish.connect.scan'),
|
|
415
|
+
confirm: t('blocklet.publish.connect.confirm'),
|
|
416
|
+
success: t('blocklet.publish.connect.success')
|
|
417
|
+
}
|
|
418
|
+
}) : null;
|
|
318
419
|
const uploadLogoPrefix = "".concat(_constant2.WELLKNOWN_SERVICE_PATH_PREFIX, "/api/project/").concat(blocklet.meta.did, "/").concat(projectId, "/logo/upload");
|
|
319
420
|
const uploadScreenshotPrefix = "".concat(_constant2.WELLKNOWN_SERVICE_PATH_PREFIX, "/api/project/").concat(blocklet.meta.did, "/").concat(projectId, "/screenshot/upload");
|
|
320
421
|
const logoUrl = params !== null && params !== void 0 && params.blockletLogo ? "".concat(uploadLogoPrefix, "/").concat(params.blockletLogo) : "".concat(_constant2.WELLKNOWN_SERVICE_PATH_PREFIX, "/static/images/logo.png");
|
|
@@ -325,7 +426,7 @@ function CreateRelease(_ref2) {
|
|
|
325
426
|
error: paramsErrTip.blockletResource,
|
|
326
427
|
app: blocklet,
|
|
327
428
|
component: item,
|
|
328
|
-
projectId: projectId,
|
|
429
|
+
projectId: projectId === _constant2.UNOWNED_DID ? '' : projectId,
|
|
329
430
|
release: _objectSpread(_objectSpread({}, release), {}, {
|
|
330
431
|
id: releaseId
|
|
331
432
|
}),
|
|
@@ -374,7 +475,7 @@ function CreateRelease(_ref2) {
|
|
|
374
475
|
marginRight: 8
|
|
375
476
|
},
|
|
376
477
|
onClick: () => setInstallResourceTip(blockletMetaUrl),
|
|
377
|
-
children: t('
|
|
478
|
+
children: t('blocklet.publish.copyInstallUrl')
|
|
378
479
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.default, {
|
|
379
480
|
fullWidth: true,
|
|
380
481
|
maxWidth: "sm",
|
|
@@ -414,7 +515,7 @@ function CreateRelease(_ref2) {
|
|
|
414
515
|
}
|
|
415
516
|
}
|
|
416
517
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Main, _objectSpread(_objectSpread({}, rest), {}, {
|
|
417
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
518
|
+
children: [connect, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
418
519
|
className: "sticky-header",
|
|
419
520
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Breadcrumbs.default, {
|
|
420
521
|
className: "breadcrumbs",
|
|
@@ -448,6 +549,9 @@ function CreateRelease(_ref2) {
|
|
|
448
549
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
449
550
|
variant: "contained",
|
|
450
551
|
disabled: loading || createLoading,
|
|
552
|
+
style: {
|
|
553
|
+
marginRight: 12
|
|
554
|
+
},
|
|
451
555
|
onClick: () => onRelease(_constant.PROJECT.RELEASE_STATUS.published),
|
|
452
556
|
children: [createLoading === _constant.PROJECT.RELEASE_STATUS.published && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
|
|
453
557
|
size: 14,
|
|
@@ -459,23 +563,24 @@ function CreateRelease(_ref2) {
|
|
|
459
563
|
})]
|
|
460
564
|
}), isPublished && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
461
565
|
children: [installButton, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
462
|
-
variant: "
|
|
566
|
+
variant: "outlined",
|
|
567
|
+
style: {
|
|
568
|
+
marginRight: 12
|
|
569
|
+
},
|
|
463
570
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
464
571
|
href: (0, _urlJoin.default)("".concat(_constant2.WELLKNOWN_SERVICE_PATH_PREFIX, "/api/project/").concat(blocklet.meta.did, "/").concat(projectId, "/").concat(releaseId, "/download/").concat((release.files || [])[0])),
|
|
465
572
|
children: t('common.download')
|
|
466
573
|
})
|
|
574
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
575
|
+
variant: "contained",
|
|
576
|
+
onClick: () => setShowStoreDialog(true),
|
|
577
|
+
children: t('common.uploadToStore')
|
|
467
578
|
})]
|
|
468
579
|
})]
|
|
469
580
|
})]
|
|
470
581
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
471
|
-
children: [
|
|
472
|
-
|
|
473
|
-
style: {
|
|
474
|
-
width: '100%'
|
|
475
|
-
},
|
|
476
|
-
children: t('blocklet.publish.packTip')
|
|
477
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
478
|
-
pt: 3
|
|
582
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
583
|
+
pt: 5
|
|
479
584
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
480
585
|
display: "flex",
|
|
481
586
|
className: "section",
|
|
@@ -509,6 +614,31 @@ function CreateRelease(_ref2) {
|
|
|
509
614
|
},
|
|
510
615
|
error: !!paramsErrTip.blockletTitle,
|
|
511
616
|
helperText: paramsErrTip.blockletTitle || ''
|
|
617
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
|
|
618
|
+
required: true,
|
|
619
|
+
label: "Blocklet DID",
|
|
620
|
+
fullWidth: true,
|
|
621
|
+
readonly: true,
|
|
622
|
+
disabled: projectId !== _constant2.UNOWNED_DID,
|
|
623
|
+
autoComplete: "off",
|
|
624
|
+
variant: "outlined",
|
|
625
|
+
onClick: handleDidConnectShow,
|
|
626
|
+
onInput: handleDidConnectShow,
|
|
627
|
+
InputProps: {
|
|
628
|
+
'data-cy': 'export-blocklet-did',
|
|
629
|
+
endAdornment: projectId === _constant2.UNOWNED_DID && /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputAdornment.default, {
|
|
630
|
+
position: "end",
|
|
631
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
632
|
+
onClick: handleDidConnectShow,
|
|
633
|
+
children: t('common.create')
|
|
634
|
+
})
|
|
635
|
+
})
|
|
636
|
+
},
|
|
637
|
+
helperText: "",
|
|
638
|
+
value: projectId === _constant2.UNOWNED_DID ? '' : projectId,
|
|
639
|
+
sx: {
|
|
640
|
+
mt: 3
|
|
641
|
+
}
|
|
512
642
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
|
|
513
643
|
label: "Blocklet ".concat(t('common.description')),
|
|
514
644
|
placeholder: "Blocklet ".concat(t('common.description')),
|
|
@@ -795,7 +925,7 @@ function CreateRelease(_ref2) {
|
|
|
795
925
|
children: resourceContent
|
|
796
926
|
})]
|
|
797
927
|
})]
|
|
798
|
-
}),
|
|
928
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
799
929
|
display: "flex",
|
|
800
930
|
mt: 3,
|
|
801
931
|
className: "section full-width",
|
|
@@ -812,15 +942,32 @@ function CreateRelease(_ref2) {
|
|
|
812
942
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_selectComponents.default, {
|
|
813
943
|
disabled: loading || readOnly,
|
|
814
944
|
app: blocklet,
|
|
815
|
-
value: params.blockletComponents,
|
|
816
|
-
onChange:
|
|
817
|
-
setParams({
|
|
818
|
-
blockletComponents: data
|
|
819
|
-
});
|
|
820
|
-
}
|
|
945
|
+
value: params.blockletComponents || [],
|
|
946
|
+
onChange: handleChangeSelectedComponents
|
|
821
947
|
})
|
|
822
948
|
})]
|
|
949
|
+
}), projectType === 'pack' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
|
|
950
|
+
type: "info",
|
|
951
|
+
style: {
|
|
952
|
+
width: '100%'
|
|
953
|
+
},
|
|
954
|
+
children: t('blocklet.publish.packTip')
|
|
823
955
|
})]
|
|
956
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog2.default, {
|
|
957
|
+
title: t('common.connectToStore'),
|
|
958
|
+
disableEscapeKeyDown: true,
|
|
959
|
+
disablePortal: false,
|
|
960
|
+
fullWidth: true,
|
|
961
|
+
open: showStoreDialog,
|
|
962
|
+
onClose: () => setShowStoreDialog(false),
|
|
963
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_connectStoreList.default, {
|
|
964
|
+
blocklet: blocklet,
|
|
965
|
+
releaseType: ((_params$blockletCompo3 = params.blockletComponents) === null || _params$blockletCompo3 === void 0 ? void 0 : _params$blockletCompo3.length) > 0 ? 'pack' : 'resource',
|
|
966
|
+
projectId: projectId,
|
|
967
|
+
releaseId: releaseId,
|
|
968
|
+
onPublish: getRelease,
|
|
969
|
+
publishedStoreIds: release === null || release === void 0 ? void 0 : release.publishedStoreIds
|
|
970
|
+
})
|
|
824
971
|
})]
|
|
825
972
|
}));
|
|
826
973
|
}
|
|
@@ -11,7 +11,6 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
|
11
11
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
12
12
|
var _blocklet = require("../../contexts/blocklet");
|
|
13
13
|
var _projectList = _interopRequireDefault(require("./project-list"));
|
|
14
|
-
var _createProject = _interopRequireDefault(require("./create-project"));
|
|
15
14
|
var _releaseList = _interopRequireDefault(require("./release-list"));
|
|
16
15
|
var _createRelease = _interopRequireDefault(require("./create-release"));
|
|
17
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -57,9 +56,6 @@ function BlockletPublish(_ref) {
|
|
|
57
56
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
|
|
58
57
|
path: "/",
|
|
59
58
|
element: /*#__PURE__*/(0, _jsxRuntime.jsx)(_projectList.default, {})
|
|
60
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
|
|
61
|
-
path: "/create",
|
|
62
|
-
element: /*#__PURE__*/(0, _jsxRuntime.jsx)(_createProject.default, {})
|
|
63
59
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
|
|
64
60
|
path: "/:projectId",
|
|
65
61
|
element: /*#__PURE__*/(0, _jsxRuntime.jsx)(_releaseList.default, {})
|
|
@@ -7,15 +7,22 @@ exports.default = ProjectList;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactRouterDom = require("react-router-dom");
|
|
9
9
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
10
|
+
var _urlJoin = _interopRequireDefault(require("url-join"));
|
|
10
11
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
11
12
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
13
|
+
var _Add = _interopRequireDefault(require("@mui/icons-material/Add"));
|
|
12
14
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
15
|
+
var _LibraryAdd = _interopRequireDefault(require("@mui/icons-material/LibraryAdd"));
|
|
13
16
|
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
17
|
+
var _InstallDesktop = _interopRequireDefault(require("@mui/icons-material/InstallDesktop"));
|
|
18
|
+
var _Download = _interopRequireDefault(require("@mui/icons-material/Download"));
|
|
19
|
+
var _constant = require("@abtnode/constant");
|
|
14
20
|
var _Datatable = _interopRequireDefault(require("@arcblock/ux/lib/Datatable"));
|
|
15
21
|
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
16
22
|
var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
|
|
17
23
|
var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
|
|
18
24
|
var _RelativeTime = _interopRequireDefault(require("@arcblock/ux/lib/RelativeTime"));
|
|
25
|
+
var _material = require("@mui/material");
|
|
19
26
|
var _blocklet = require("../../contexts/blocklet");
|
|
20
27
|
var _node = require("../../contexts/node");
|
|
21
28
|
var _emptySpinner = _interopRequireDefault(require("../../empty-spinner"));
|
|
@@ -23,13 +30,15 @@ var _didAddress = _interopRequireDefault(require("../../did-address"));
|
|
|
23
30
|
var _confirm = _interopRequireDefault(require("../../confirm"));
|
|
24
31
|
var _bundleAvatar = _interopRequireDefault(require("../bundle-avatar"));
|
|
25
32
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
|
-
var _templateObject;
|
|
33
|
+
var _window$env, _templateObject;
|
|
27
34
|
/* eslint-disable react/no-unstable-nested-components */
|
|
28
35
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
36
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
30
37
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
31
38
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
39
|
+
const serverEndpoint = (_window$env = window.env) === null || _window$env === void 0 ? void 0 : _window$env.serverEndpoint;
|
|
32
40
|
function ProjectList() {
|
|
41
|
+
const navigate = (0, _reactRouterDom.useNavigate)();
|
|
33
42
|
const {
|
|
34
43
|
t,
|
|
35
44
|
locale
|
|
@@ -61,6 +70,11 @@ function ProjectList() {
|
|
|
61
70
|
_Toast.default.error(err.message);
|
|
62
71
|
});
|
|
63
72
|
};
|
|
73
|
+
const handleNewBlocklet = () => {
|
|
74
|
+
navigate("".concat(_constant.UNOWNED_DID, "/create"), {
|
|
75
|
+
replace: true
|
|
76
|
+
});
|
|
77
|
+
};
|
|
64
78
|
const onDeleteProject = project => {
|
|
65
79
|
setDeleteConfirm(project);
|
|
66
80
|
};
|
|
@@ -87,7 +101,15 @@ function ProjectList() {
|
|
|
87
101
|
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
88
102
|
|
|
89
103
|
if (!projects && loading) {
|
|
90
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
104
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
105
|
+
sx: {
|
|
106
|
+
display: 'flex',
|
|
107
|
+
justifyContent: 'center',
|
|
108
|
+
alignItems: 'center',
|
|
109
|
+
marginTop: '40px'
|
|
110
|
+
},
|
|
111
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_emptySpinner.default, {})
|
|
112
|
+
});
|
|
91
113
|
}
|
|
92
114
|
if (!projects) {
|
|
93
115
|
return null;
|
|
@@ -112,12 +134,10 @@ function ProjectList() {
|
|
|
112
134
|
mb: 3
|
|
113
135
|
},
|
|
114
136
|
children: t('blocklet.publish.createBlockletTip')
|
|
115
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
children: t('blocklet.publish.createBlocklet')
|
|
120
|
-
})
|
|
137
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
138
|
+
onClick: handleNewBlocklet,
|
|
139
|
+
variant: "contained",
|
|
140
|
+
children: t('blocklet.publish.createBlocklet')
|
|
121
141
|
})]
|
|
122
142
|
});
|
|
123
143
|
}
|
|
@@ -202,34 +222,118 @@ function ProjectList() {
|
|
|
202
222
|
options: {
|
|
203
223
|
customBodyRenderLite: rawIndex => {
|
|
204
224
|
const project = projects[rawIndex];
|
|
205
|
-
|
|
225
|
+
let installUrl = '';
|
|
226
|
+
let downloadUrl = '';
|
|
227
|
+
if (project.lastReleaseId) {
|
|
228
|
+
const blockletMetaUrl = (0, _urlJoin.default)(serverEndpoint, "/api/project/".concat(blocklet.meta.did, "/").concat(project.id, "/").concat(project.lastReleaseId, "/release/blocklet.json"));
|
|
229
|
+
const url = new URL(serverEndpoint);
|
|
230
|
+
url.pathname = (0, _urlJoin.default)(url.pathname, '/launch-blocklet/agreement');
|
|
231
|
+
url.searchParams.set('blocklet_meta_url', blockletMetaUrl);
|
|
232
|
+
installUrl = url.href;
|
|
233
|
+
downloadUrl = (0, _urlJoin.default)("".concat(_constant.WELLKNOWN_SERVICE_PATH_PREFIX, "/api/project/").concat(blocklet.meta.did, "/").concat(project.id, "/").concat(project.lastReleaseId, "/download/").concat((project.lastReleaseFiles || [])[0]));
|
|
234
|
+
}
|
|
235
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
206
236
|
display: "flex",
|
|
207
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
237
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
|
|
238
|
+
to: "".concat(project.id, "/create"),
|
|
239
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
|
|
240
|
+
title: t('blocklet.publish.createRelease'),
|
|
241
|
+
placement: "top",
|
|
242
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
243
|
+
color: "primary",
|
|
244
|
+
"aria-label": "create",
|
|
245
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LibraryAdd.default, {
|
|
246
|
+
sx: {
|
|
247
|
+
fontSize: 18
|
|
248
|
+
}
|
|
249
|
+
})
|
|
250
|
+
})
|
|
251
|
+
})
|
|
252
|
+
}), !!project.lastReleaseId && project.type === 'pack' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
|
|
253
|
+
title: t('blocklet.publish.install', {
|
|
254
|
+
name: project.blockletTitle
|
|
255
|
+
}),
|
|
256
|
+
placement: "top",
|
|
257
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
258
|
+
color: "secondary",
|
|
259
|
+
"aria-label": "create",
|
|
260
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
261
|
+
style: {
|
|
262
|
+
display: 'flex'
|
|
263
|
+
},
|
|
264
|
+
href: installUrl,
|
|
265
|
+
target: "_blank",
|
|
266
|
+
rel: "noreferrer",
|
|
267
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InstallDesktop.default, {
|
|
268
|
+
sx: {
|
|
269
|
+
fontSize: 18
|
|
270
|
+
}
|
|
271
|
+
})
|
|
272
|
+
})
|
|
273
|
+
})
|
|
274
|
+
}), !!project.lastReleaseId && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
|
|
275
|
+
title: t('blocklet.publish.download', {
|
|
276
|
+
name: project.blockletTitle
|
|
277
|
+
}),
|
|
278
|
+
placement: "top",
|
|
279
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
280
|
+
color: "primary",
|
|
281
|
+
"aria-label": "create",
|
|
282
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
283
|
+
style: {
|
|
284
|
+
display: 'flex'
|
|
285
|
+
},
|
|
286
|
+
href: downloadUrl,
|
|
287
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Download.default, {
|
|
288
|
+
sx: {
|
|
289
|
+
fontSize: 18
|
|
290
|
+
}
|
|
291
|
+
})
|
|
292
|
+
})
|
|
293
|
+
})
|
|
294
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
|
|
295
|
+
title: t('blocklet.publish.delete', {
|
|
296
|
+
name: project.blockletTitle
|
|
297
|
+
}),
|
|
298
|
+
placement: "top",
|
|
299
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
300
|
+
color: "primary",
|
|
301
|
+
"aria-label": "delete",
|
|
302
|
+
onClick: () => onDeleteProject(project),
|
|
303
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {
|
|
304
|
+
sx: {
|
|
305
|
+
fontSize: 18
|
|
306
|
+
}
|
|
307
|
+
})
|
|
215
308
|
})
|
|
216
|
-
})
|
|
309
|
+
})]
|
|
217
310
|
});
|
|
218
311
|
}
|
|
219
312
|
}
|
|
220
313
|
}].filter(Boolean);
|
|
221
314
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Main, {
|
|
222
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
})
|
|
315
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
316
|
+
display: "flex",
|
|
317
|
+
justifyContent: "space-between",
|
|
318
|
+
alignItems: "center",
|
|
319
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
320
|
+
sx: {
|
|
321
|
+
fontSize: '1.2rem',
|
|
322
|
+
fontWeight: 'bold'
|
|
323
|
+
},
|
|
324
|
+
children: t('blocklet.publish.productListTitle')
|
|
325
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
326
|
+
onClick: handleNewBlocklet,
|
|
327
|
+
variant: "contained",
|
|
328
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
|
|
329
|
+
style: {
|
|
330
|
+
fontSize: '1.3em',
|
|
331
|
+
marginRight: 4
|
|
332
|
+
}
|
|
333
|
+
}), t('blocklet.publish.createBlocklet')]
|
|
334
|
+
})]
|
|
335
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
336
|
+
mt: 3
|
|
233
337
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Datatable.default, {
|
|
234
338
|
className: "main-table",
|
|
235
339
|
locale: locale,
|