@abtnode/ux 1.16.29-beta-0070353c → 1.16.29-beta-e04c6f40
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/notification/push-kit.js +17 -3
- package/lib/blocklet/publish/create-release/branding.js +1 -0
- package/lib/blocklet/publish/create-release/connect-store-button.js +99 -23
- package/lib/blocklet/publish/create-release/connect-store-list.js +12 -6
- package/lib/blocklet/publish/create-release/index.js +3 -1
- package/lib/invitation/invitation-receive.js +46 -25
- package/lib/invitation/invitation.js +4 -4
- package/lib/locales/ar.js +7 -3
- package/lib/locales/de.js +7 -3
- package/lib/locales/en.js +5 -1
- package/lib/locales/es.js +7 -3
- package/lib/locales/fr.js +7 -3
- package/lib/locales/hi.js +7 -3
- package/lib/locales/i18n.db +0 -0
- package/lib/locales/id.js +7 -3
- package/lib/locales/ja.js +7 -3
- package/lib/locales/ko.js +7 -3
- package/lib/locales/pt.js +7 -3
- package/lib/locales/ru.js +7 -3
- package/lib/locales/th.js +7 -3
- package/lib/locales/vi.js +7 -3
- package/lib/locales/zh-tw.js +7 -3
- package/lib/locales/zh.js +7 -3
- package/lib/store/add.js +24 -10
- package/lib/store/connect-actions.js +18 -18
- package/lib/store/item.js +28 -4
- package/lib/team/members/index.js +33 -1
- package/lib/team/members/invite-member.js +98 -66
- package/lib/util/sdk.js +3 -0
- package/package.json +8 -7
|
@@ -6,6 +6,7 @@ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
|
6
6
|
import Toast from '@arcblock/ux/lib/Toast';
|
|
7
7
|
import Button from '@arcblock/ux/lib/Button';
|
|
8
8
|
import isURL from 'validator/lib/isURL';
|
|
9
|
+
import { joinURL, withQuery } from 'ufo';
|
|
9
10
|
import { useNodeContext } from '../../contexts/node';
|
|
10
11
|
import { useBlockletContext } from '../../contexts/blocklet';
|
|
11
12
|
import useConfirm from '../../hooks/confirm';
|
|
@@ -82,15 +83,28 @@ function NotificationPushKit() {
|
|
|
82
83
|
if (formState.isDirty) {
|
|
83
84
|
await onSubmit(data, event, false);
|
|
84
85
|
}
|
|
86
|
+
const appUrl = (blocklet?.configs || []).find(x => x.key === 'BLOCKLET_APP_URL')?.value;
|
|
85
87
|
await api.sendPush({
|
|
86
88
|
input: {
|
|
87
89
|
did,
|
|
88
90
|
receiver: pageState.testReceiver,
|
|
89
91
|
notification: JSON.stringify({
|
|
90
|
-
title: 'Test push-kit notification',
|
|
91
|
-
body: 'This is message from push-kit config test',
|
|
92
92
|
type: 'passthrough',
|
|
93
|
-
passthroughType: 'messageStatus'
|
|
93
|
+
passthroughType: 'messageStatus',
|
|
94
|
+
data: {
|
|
95
|
+
message: {
|
|
96
|
+
title: 'Test push-kit notification',
|
|
97
|
+
body: 'This is message from push-kit config test',
|
|
98
|
+
sender: {
|
|
99
|
+
did: blocklet?.appDid,
|
|
100
|
+
fullName: blocklet?.meta?.title,
|
|
101
|
+
avatar: withQuery(joinURL(appUrl, '/.well-known/service/blocklet/logo'), {
|
|
102
|
+
v: blocklet?.meta?.version,
|
|
103
|
+
t: new Date(blocklet?.updatedAt || 0).getTime()
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
94
108
|
})
|
|
95
109
|
}
|
|
96
110
|
});
|
|
@@ -169,6 +169,7 @@ function Branding({
|
|
|
169
169
|
children: /*#__PURE__*/_jsx(ConnectStoreButton, {
|
|
170
170
|
blocklet: blocklet,
|
|
171
171
|
store: wantToConnectStore,
|
|
172
|
+
componentDid: componentDid,
|
|
172
173
|
onChangeStore: setWantToConnectStore,
|
|
173
174
|
disabled: !params.blockletTitle || readOnly || loading,
|
|
174
175
|
loading: loading,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { useState, useRef } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import Button from '@mui/material/Button';
|
|
4
|
-
import ButtonGroup from '@mui/material/ButtonGroup';
|
|
5
|
-
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
|
|
6
|
-
import ClickAwayListener from '@mui/material/ClickAwayListener';
|
|
7
|
-
import Grow from '@mui/material/Grow';
|
|
8
|
-
import Paper from '@mui/material/Paper';
|
|
9
|
-
import Popper from '@mui/material/Popper';
|
|
10
|
-
import MenuItem from '@mui/material/MenuItem';
|
|
11
|
-
import MenuList from '@mui/material/MenuList';
|
|
12
|
-
import Spinner from '@mui/material/CircularProgress';
|
|
13
1
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
2
|
+
import { BLOCKLET_TENANT_MODES } from '@blocklet/constant';
|
|
3
|
+
import AddIcon from '@mui/icons-material/Add';
|
|
4
|
+
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
|
|
5
|
+
import { Button, ButtonGroup, CircularProgress, ClickAwayListener, Divider, Grow, IconButton, MenuItem, MenuList, Paper, Popper, Typography } from '@mui/material';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import { Icon } from '@iconify/react';
|
|
8
|
+
import { useRef, useState } from 'react';
|
|
9
|
+
import Toast from '@arcblock/ux/lib/Toast';
|
|
10
|
+
import formatError from '@abtnode/util/lib/format-error';
|
|
11
|
+
import AddStore from '../../../store/add';
|
|
12
|
+
import { useNodeContext } from '../../../contexts/node';
|
|
13
|
+
import ConfirmDialog from '../../../confirm';
|
|
14
14
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
15
15
|
export default function ConnectStoreButton({
|
|
16
16
|
blocklet,
|
|
@@ -18,19 +18,25 @@ export default function ConnectStoreButton({
|
|
|
18
18
|
onChangeStore,
|
|
19
19
|
onClick,
|
|
20
20
|
disabled,
|
|
21
|
-
loading
|
|
21
|
+
loading,
|
|
22
|
+
componentDid
|
|
22
23
|
}) {
|
|
23
24
|
const {
|
|
24
25
|
t
|
|
25
26
|
} = useLocaleContext();
|
|
26
27
|
const [open, setOpen] = useState(false);
|
|
27
28
|
const anchorRef = useRef(null);
|
|
28
|
-
const
|
|
29
|
+
const [openAddStore, setOpenAddStore] = useState(false);
|
|
30
|
+
const {
|
|
31
|
+
api
|
|
32
|
+
} = useNodeContext();
|
|
33
|
+
const [deleteStore, setDeleteStore] = useState(null);
|
|
34
|
+
const handleSelectStore = nextStore => {
|
|
29
35
|
onChangeStore(nextStore);
|
|
30
36
|
setOpen(false);
|
|
31
37
|
};
|
|
32
38
|
const handleToggle = () => {
|
|
33
|
-
setOpen(
|
|
39
|
+
setOpen(true);
|
|
34
40
|
};
|
|
35
41
|
const handleClose = event => {
|
|
36
42
|
if (anchorRef.current && anchorRef.current.contains(event.target)) {
|
|
@@ -38,7 +44,32 @@ export default function ConnectStoreButton({
|
|
|
38
44
|
}
|
|
39
45
|
setOpen(false);
|
|
40
46
|
};
|
|
41
|
-
const
|
|
47
|
+
const handleOpenAddStore = () => {
|
|
48
|
+
setOpenAddStore(true);
|
|
49
|
+
};
|
|
50
|
+
const handleCloseAddStore = () => {
|
|
51
|
+
setOpenAddStore(false);
|
|
52
|
+
};
|
|
53
|
+
const handleDeleteStore = async () => {
|
|
54
|
+
if (!deleteStore) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
await api.deleteBlockletStore({
|
|
59
|
+
input: {
|
|
60
|
+
teamDid: blocklet.meta.did,
|
|
61
|
+
url: deleteStore.url,
|
|
62
|
+
projectId: ''
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
setDeleteStore(null);
|
|
66
|
+
} catch (err) {
|
|
67
|
+
Toast.error(`Remove Blocklet Store Error: ${formatError(err)}`);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const storeList = blocklet?.settings?.storeList || [];
|
|
71
|
+
const did = blocklet?.meta?.did;
|
|
72
|
+
const manageable = !(componentDid && window.blocklet?.tenantMode === BLOCKLET_TENANT_MODES.MULTIPLE);
|
|
42
73
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
43
74
|
children: [/*#__PURE__*/_jsxs(ButtonGroup, {
|
|
44
75
|
disabled: disabled,
|
|
@@ -48,7 +79,7 @@ export default function ConnectStoreButton({
|
|
|
48
79
|
"aria-label": "Button group with connect store",
|
|
49
80
|
children: [/*#__PURE__*/_jsxs(Button, {
|
|
50
81
|
onClick: onClick,
|
|
51
|
-
children: [loading && /*#__PURE__*/_jsx(
|
|
82
|
+
children: [loading && /*#__PURE__*/_jsx(CircularProgress, {
|
|
52
83
|
size: 14,
|
|
53
84
|
sx: {
|
|
54
85
|
mr: 0.5
|
|
@@ -83,18 +114,60 @@ export default function ConnectStoreButton({
|
|
|
83
114
|
children: /*#__PURE__*/_jsx(Paper, {
|
|
84
115
|
children: /*#__PURE__*/_jsx(ClickAwayListener, {
|
|
85
116
|
onClickAway: handleClose,
|
|
86
|
-
children: /*#__PURE__*/
|
|
117
|
+
children: /*#__PURE__*/_jsxs(MenuList, {
|
|
87
118
|
id: "split-button-menu",
|
|
88
119
|
autoFocusItem: true,
|
|
89
|
-
children:
|
|
120
|
+
children: [storeList.map(option => /*#__PURE__*/_jsxs(MenuItem, {
|
|
90
121
|
selected: option.id === store.id,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
122
|
+
sx: {
|
|
123
|
+
height: 40
|
|
124
|
+
},
|
|
125
|
+
onClick: () => handleSelectStore(option),
|
|
126
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
127
|
+
variant: "inherit",
|
|
128
|
+
children: option.name
|
|
129
|
+
}), manageable && !option.protected && /*#__PURE__*/_jsx(IconButton, {
|
|
130
|
+
sx: {
|
|
131
|
+
ml: 1
|
|
132
|
+
},
|
|
133
|
+
onClick: e => {
|
|
134
|
+
e.preventDefault();
|
|
135
|
+
e.stopPropagation();
|
|
136
|
+
setDeleteStore(option);
|
|
137
|
+
},
|
|
138
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
139
|
+
icon: "ic:outline-delete"
|
|
140
|
+
})
|
|
141
|
+
})]
|
|
142
|
+
}, option.url)), manageable && /*#__PURE__*/_jsx(Divider, {}), manageable && /*#__PURE__*/_jsxs(MenuItem, {
|
|
143
|
+
onClick: handleOpenAddStore,
|
|
144
|
+
children: [/*#__PURE__*/_jsx(AddIcon, {
|
|
145
|
+
font: true
|
|
146
|
+
}), /*#__PURE__*/_jsx(Typography, {
|
|
147
|
+
variant: "inherit",
|
|
148
|
+
children: t('store.blockletRegistry.addRegistry')
|
|
149
|
+
})]
|
|
150
|
+
})]
|
|
94
151
|
})
|
|
95
152
|
})
|
|
96
153
|
})
|
|
97
154
|
})
|
|
155
|
+
}), openAddStore && /*#__PURE__*/_jsx(AddStore, {
|
|
156
|
+
hiddenChildren: true,
|
|
157
|
+
open: true,
|
|
158
|
+
onClose: handleCloseAddStore,
|
|
159
|
+
teamDid: did,
|
|
160
|
+
storeList: storeList,
|
|
161
|
+
scope: "studio"
|
|
162
|
+
}), deleteStore && /*#__PURE__*/_jsx(ConfirmDialog, {
|
|
163
|
+
displayError: true,
|
|
164
|
+
title: `${t('common.delete')} ${deleteStore.name}`,
|
|
165
|
+
description: t('blocklet.publish.deleteStoreTip', {
|
|
166
|
+
name: deleteStore.name
|
|
167
|
+
}),
|
|
168
|
+
confirm: t('common.confirm'),
|
|
169
|
+
onConfirm: handleDeleteStore,
|
|
170
|
+
onCancel: () => setDeleteStore(null)
|
|
98
171
|
})]
|
|
99
172
|
});
|
|
100
173
|
}
|
|
@@ -104,7 +177,10 @@ ConnectStoreButton.propTypes = {
|
|
|
104
177
|
onChangeStore: PropTypes.func.isRequired,
|
|
105
178
|
onClick: PropTypes.func.isRequired,
|
|
106
179
|
loading: PropTypes.bool.isRequired,
|
|
107
|
-
disabled: PropTypes.bool.isRequired
|
|
180
|
+
disabled: PropTypes.bool.isRequired,
|
|
181
|
+
componentDid: PropTypes.string.isRequired,
|
|
182
|
+
projectType: PropTypes.string.isRequired,
|
|
183
|
+
getData: PropTypes.func.isRequired
|
|
108
184
|
};
|
|
109
185
|
ConnectStoreButton.defaultProps = {
|
|
110
186
|
store: null,
|
|
@@ -19,7 +19,9 @@ function ConnectStoreList({
|
|
|
19
19
|
onDelete,
|
|
20
20
|
projectType,
|
|
21
21
|
componentDid,
|
|
22
|
-
onOpenConnectStore
|
|
22
|
+
onOpenConnectStore,
|
|
23
|
+
behavior,
|
|
24
|
+
onSelectConnectStore
|
|
23
25
|
}) {
|
|
24
26
|
const {
|
|
25
27
|
t
|
|
@@ -35,9 +37,8 @@ function ConnectStoreList({
|
|
|
35
37
|
}, {});
|
|
36
38
|
}, [connectedStores]);
|
|
37
39
|
const did = blocklet?.meta?.did;
|
|
38
|
-
const handleAddStore = () => {};
|
|
39
40
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
40
|
-
children: [!!storeList?.length && /*#__PURE__*/_jsx(Alert, {
|
|
41
|
+
children: [behavior === 'connect' && !!storeList?.length && /*#__PURE__*/_jsx(Alert, {
|
|
41
42
|
severity: "info",
|
|
42
43
|
style: {
|
|
43
44
|
width: '100%'
|
|
@@ -61,6 +62,8 @@ function ConnectStoreList({
|
|
|
61
62
|
"data-cy": "store-switch",
|
|
62
63
|
children: /*#__PURE__*/_jsx(ListItemText, {
|
|
63
64
|
children: /*#__PURE__*/_jsx(StoreItem, {
|
|
65
|
+
behavior: behavior,
|
|
66
|
+
onSelectConnectStore: onSelectConnectStore,
|
|
64
67
|
releaseId: releaseId,
|
|
65
68
|
projectId: projectId,
|
|
66
69
|
releaseType: releaseType,
|
|
@@ -76,7 +79,6 @@ function ConnectStoreList({
|
|
|
76
79
|
})
|
|
77
80
|
}, x.url))
|
|
78
81
|
}), componentDid && window.blocklet?.tenantMode === BLOCKLET_TENANT_MODES.MULTIPLE ? null : /*#__PURE__*/_jsx(AddStore, {
|
|
79
|
-
onAdd: handleAddStore,
|
|
80
82
|
teamDid: did,
|
|
81
83
|
storeList: storeList,
|
|
82
84
|
scope: "studio"
|
|
@@ -94,7 +96,9 @@ ConnectStoreList.propTypes = {
|
|
|
94
96
|
connectedStores: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
95
97
|
projectType: PropTypes.string,
|
|
96
98
|
componentDid: PropTypes.string,
|
|
97
|
-
onOpenConnectStore: PropTypes.func
|
|
99
|
+
onOpenConnectStore: PropTypes.func,
|
|
100
|
+
onSelectConnectStore: PropTypes.func,
|
|
101
|
+
behavior: PropTypes.string
|
|
98
102
|
};
|
|
99
103
|
ConnectStoreList.defaultProps = {
|
|
100
104
|
projectType: '',
|
|
@@ -102,6 +106,8 @@ ConnectStoreList.defaultProps = {
|
|
|
102
106
|
publishedStoreIds: [],
|
|
103
107
|
onPublish: () => {},
|
|
104
108
|
onDelete: () => {},
|
|
105
|
-
onOpenConnectStore: () => {}
|
|
109
|
+
onOpenConnectStore: () => {},
|
|
110
|
+
onSelectConnectStore: () => {},
|
|
111
|
+
behavior: 'connect'
|
|
106
112
|
};
|
|
107
113
|
export default ConnectStoreList;
|
|
@@ -53,7 +53,9 @@ const addComponentTabs = ({
|
|
|
53
53
|
});
|
|
54
54
|
};
|
|
55
55
|
const pickParams = (baseParams, app) => {
|
|
56
|
-
const params = pick(baseParams, ['blockletVersion', 'blockletTitle', 'blockletDescription', 'blockletLogo', 'blockletIntroduction', 'blockletScreenshots', 'connectedStores', 'blockletComponents', 'lastReleaseId', 'uploadedResource'
|
|
56
|
+
const params = pick(baseParams, ['blockletVersion', 'blockletTitle', 'blockletDescription', 'blockletLogo', 'blockletIntroduction', 'blockletScreenshots', 'connectedStores', 'blockletComponents', 'lastReleaseId', 'uploadedResource'
|
|
57
|
+
// 'note',
|
|
58
|
+
]);
|
|
57
59
|
if (!params.blockletComponents) {
|
|
58
60
|
params.blockletComponents = (app.children || []).map(x => ({
|
|
59
61
|
did: x.meta.did,
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { useCallback } from 'react';
|
|
2
1
|
import PropTypes from 'prop-types';
|
|
3
2
|
import styled from '@emotion/styled';
|
|
4
3
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
5
4
|
import DidButton from '@arcblock/did-connect/lib/Button';
|
|
6
5
|
import { AUTH_SERVICE_PREFIX, API_DID_PREFIX } from '@arcblock/did-connect/lib/constant';
|
|
7
6
|
import { joinURL } from 'ufo';
|
|
7
|
+
import { useMemoizedFn, useMount, useReactive } from 'ahooks';
|
|
8
8
|
import { formatDateTime } from '../util';
|
|
9
9
|
import usePassportId from '../hooks/use-passport-id';
|
|
10
10
|
import { useSessionContext } from '../contexts/session';
|
|
11
|
+
import blockletSdk from '../util/sdk';
|
|
11
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
13
|
function InvitationReceive({
|
|
13
14
|
invitation,
|
|
@@ -30,28 +31,47 @@ function InvitationReceive({
|
|
|
30
31
|
if (typeof window !== 'undefined') {
|
|
31
32
|
componentId = window?.blocklet?.componentId;
|
|
32
33
|
}
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
const currentState = useReactive({
|
|
35
|
+
loading: false,
|
|
36
|
+
extraParams: {
|
|
37
|
+
// 生成 passport 信息需要 baseUrl 字段
|
|
38
|
+
baseUrl: window.location.origin,
|
|
39
|
+
componentId,
|
|
40
|
+
sourceAppPid: invitation?.sourceAppPid || null
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
useMount(async () => {
|
|
44
|
+
const passportId = getPassportId();
|
|
45
|
+
if (passportId) {
|
|
46
|
+
currentState.extraParams.passportId = passportId;
|
|
47
|
+
}
|
|
48
|
+
if (action === 'invite') {
|
|
49
|
+
currentState.extraParams.inviteId = invitation.inviteId;
|
|
50
|
+
} else if (action === 'issue-passport') {
|
|
51
|
+
currentState.extraParams.id = invitation.inviteId;
|
|
52
|
+
}
|
|
53
|
+
if (inService && invitation?.receiver?.did) {
|
|
54
|
+
currentState.loading = true;
|
|
55
|
+
try {
|
|
56
|
+
const publicInfo = await blockletSdk.user.getUserPublicInfo({
|
|
57
|
+
did: invitation.receiver.did
|
|
58
|
+
});
|
|
59
|
+
if (publicInfo?.sourceAppPid) {
|
|
60
|
+
currentState.extraParams.sourceAppPid = publicInfo.sourceAppPid;
|
|
61
|
+
}
|
|
62
|
+
} finally {
|
|
63
|
+
currentState.loading = false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
const onClose = useMemoizedFn(() => {
|
|
48
68
|
connectApi.close();
|
|
49
|
-
}
|
|
50
|
-
const onSuccess =
|
|
69
|
+
});
|
|
70
|
+
const onSuccess = useMemoizedFn((...args) => {
|
|
51
71
|
connectApi.close();
|
|
52
72
|
onLogin(...args);
|
|
53
|
-
}
|
|
54
|
-
const onClickReceive =
|
|
73
|
+
});
|
|
74
|
+
const onClickReceive = useMemoizedFn(() => {
|
|
55
75
|
if (typeof onReceive === 'function') {
|
|
56
76
|
onReceive();
|
|
57
77
|
return;
|
|
@@ -62,10 +82,11 @@ function InvitationReceive({
|
|
|
62
82
|
className: 'connect',
|
|
63
83
|
forceConnected: invitation?.receiver?.did || false,
|
|
64
84
|
autoConnect: false,
|
|
85
|
+
disableSwitchApp: true,
|
|
65
86
|
locale,
|
|
66
87
|
extraParams: {
|
|
67
88
|
provider: 'wallet',
|
|
68
|
-
...extraParams
|
|
89
|
+
...currentState.extraParams
|
|
69
90
|
},
|
|
70
91
|
baseUrl: window.location.origin,
|
|
71
92
|
prefix: joinURL(window.location.origin, AUTH_SERVICE_PREFIX, API_DID_PREFIX),
|
|
@@ -86,8 +107,9 @@ function InvitationReceive({
|
|
|
86
107
|
className: 'connect',
|
|
87
108
|
forceConnected: invitation?.receiver?.did || false,
|
|
88
109
|
autoConnect: false,
|
|
110
|
+
disableSwitchApp: true,
|
|
89
111
|
locale,
|
|
90
|
-
extraParams,
|
|
112
|
+
extraParams: currentState.extraParams,
|
|
91
113
|
messages: {
|
|
92
114
|
title: t('receive.dialog.title'),
|
|
93
115
|
scan: t('receive.dialog.scan'),
|
|
@@ -98,11 +120,10 @@ function InvitationReceive({
|
|
|
98
120
|
onClose
|
|
99
121
|
});
|
|
100
122
|
}
|
|
101
|
-
|
|
102
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
103
|
-
}, [connectApi.openPopup]);
|
|
123
|
+
});
|
|
104
124
|
return /*#__PURE__*/_jsxs(Root, {
|
|
105
125
|
children: [/*#__PURE__*/_jsx(DidButton, {
|
|
126
|
+
loading: currentState.loading,
|
|
106
127
|
size: "large",
|
|
107
128
|
variant: "contained",
|
|
108
129
|
className: "invite-receive__button",
|
|
@@ -34,8 +34,8 @@ function Invitation({
|
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
const isSuccess = status === 'success' || state?.data?.status === 'success';
|
|
37
|
-
const
|
|
38
|
-
const
|
|
37
|
+
const SectionHeader = isSuccess ? InvitationSuccess : InvitationUser;
|
|
38
|
+
const SectionFooter = isSuccess ? InvitationLogin : InvitationReceive;
|
|
39
39
|
return /*#__PURE__*/_jsx(Root, {
|
|
40
40
|
className: "page-invite__wrapper",
|
|
41
41
|
children: state?.data ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
@@ -43,14 +43,14 @@ function Invitation({
|
|
|
43
43
|
invitation: state.data
|
|
44
44
|
}), /*#__PURE__*/_jsxs(Box, {
|
|
45
45
|
className: "page-invite__card",
|
|
46
|
-
children: [/*#__PURE__*/_jsx(
|
|
46
|
+
children: [/*#__PURE__*/_jsx(SectionHeader, {
|
|
47
47
|
invitation: state.data
|
|
48
48
|
}), /*#__PURE__*/_jsx(InvitationPassport, {
|
|
49
49
|
invitation: state.data,
|
|
50
50
|
action: action,
|
|
51
51
|
createPassportSvg: createPassportSvg,
|
|
52
52
|
passportColor: passportColor
|
|
53
|
-
}), /*#__PURE__*/_jsx(
|
|
53
|
+
}), /*#__PURE__*/_jsx(SectionFooter, {
|
|
54
54
|
invitation: state.data,
|
|
55
55
|
action: action,
|
|
56
56
|
onLogin: onLoginSuccess,
|
package/lib/locales/ar.js
CHANGED
|
@@ -356,7 +356,9 @@ export default {
|
|
|
356
356
|
blockletStudio: 'استوديو',
|
|
357
357
|
visitStore: 'زيارة المتجر',
|
|
358
358
|
reconnect: 'إعادة الاتصال',
|
|
359
|
-
change: 'تغيير'
|
|
359
|
+
change: 'تغيير',
|
|
360
|
+
disconnect: 'توقف',
|
|
361
|
+
sourceApp: 'ينتمي إلى التطبيق'
|
|
360
362
|
},
|
|
361
363
|
blocklet: {
|
|
362
364
|
external: 'خارجي',
|
|
@@ -727,7 +729,7 @@ export default {
|
|
|
727
729
|
},
|
|
728
730
|
resourceTip: 'حاليًا ، كما هو الحال بوصفه كتلة مورد ، لا يمكن تثبيته مباشرة من المتجر.',
|
|
729
731
|
whyCantSeeInStore: 'لماذا لا أستطيع رؤية هذا البلوكليت في المتجر؟',
|
|
730
|
-
whyCantSeeResourceBlockletInStore: '
|
|
732
|
+
whyCantSeeResourceBlockletInStore: 'تم إخفاء Blockletات الموارد من صفحة قائمة المتجر افتراضيًا',
|
|
731
733
|
tenantScope: 'مستأجر',
|
|
732
734
|
blockletStudio: 'استوديو بلوكليت',
|
|
733
735
|
allComponentsNotRunning: 'لا يعمل بلوكلتس، يرجى تشغيله أولاً',
|
|
@@ -744,7 +746,9 @@ export default {
|
|
|
744
746
|
branding: 'العلامة التجارية',
|
|
745
747
|
brandingHelp: 'سيتم عرض مزيد من المعلومات حول البلوكلت في المتجر',
|
|
746
748
|
resourceSelect: 'اختر موردًا من Blocklets',
|
|
747
|
-
resourceUpload: 'تحميل المورد من القرص الخاص بك (الفهرس.html مطلوب في الأرشيف)'
|
|
749
|
+
resourceUpload: 'تحميل المورد من القرص الخاص بك (الفهرس.html مطلوب في الأرشيف)',
|
|
750
|
+
deleteStoreTip: 'هل أنت متأكد أنك تريد إزالة {name} من قائمة متجر الاتصال؟',
|
|
751
|
+
disconnectStoreTip: 'سيتم حذف بلوكليت من المخزن بعد الفصل. هل أنت متأكد من أنك تريد الفصل؟'
|
|
748
752
|
},
|
|
749
753
|
titleValidationError: 'يجب أن يكون طول العنوان على الأقل 3 أحرف',
|
|
750
754
|
descriptionValidationError: 'يجب أن تكون طول الوصف بين 3 و 160 حرفًا'
|
package/lib/locales/de.js
CHANGED
|
@@ -356,7 +356,9 @@ export default {
|
|
|
356
356
|
blockletStudio: 'Studio',
|
|
357
357
|
visitStore: 'Besuche den Laden',
|
|
358
358
|
reconnect: 'Verbinden wiederherstellen',
|
|
359
|
-
change: 'Ändern'
|
|
359
|
+
change: 'Ändern',
|
|
360
|
+
disconnect: 'Verbindung trennen',
|
|
361
|
+
sourceApp: 'Zur App gehörend'
|
|
360
362
|
},
|
|
361
363
|
blocklet: {
|
|
362
364
|
external: 'Extern',
|
|
@@ -727,7 +729,7 @@ export default {
|
|
|
727
729
|
},
|
|
728
730
|
resourceTip: 'Zurzeit kann es als Ressourcen-Blocklet nicht direkt aus dem Store installiert werden.',
|
|
729
731
|
whyCantSeeInStore: 'Warum kann ich dieses Blocklet nicht im Store sehen?',
|
|
730
|
-
whyCantSeeResourceBlockletInStore: '
|
|
732
|
+
whyCantSeeResourceBlockletInStore: 'Ressourcen-Blocklets sind standardmäßig auf der Store-Listenseite ausgeblendet',
|
|
731
733
|
tenantScope: 'Mieter',
|
|
732
734
|
blockletStudio: 'Blocklet Studio',
|
|
733
735
|
allComponentsNotRunning: 'Blocklets läuft nicht, bitte starten Sie es zuerst',
|
|
@@ -744,7 +746,9 @@ export default {
|
|
|
744
746
|
branding: 'Branding',
|
|
745
747
|
brandingHelp: 'Weitere Informationen über den Blocklet werden im Store angezeigt',
|
|
746
748
|
resourceSelect: 'Wählen Sie eine Ressource aus Blocklets',
|
|
747
|
-
resourceUpload: 'Ressource von Ihrer Festplatte hochladen (index.html ist im Archiv erforderlich)'
|
|
749
|
+
resourceUpload: 'Ressource von Ihrer Festplatte hochladen (index.html ist im Archiv erforderlich)',
|
|
750
|
+
deleteStoreTip: 'Möchten Sie {name} wirklich aus der Verbindungsliste des Stores entfernen?',
|
|
751
|
+
disconnectStoreTip: 'Das Blocklet wird nach dem Trennen aus dem Store entfernt. Möchten Sie wirklich trennen?'
|
|
748
752
|
},
|
|
749
753
|
titleValidationError: 'Die Länge des Titels muss mindestens 3 Zeichen betragen',
|
|
750
754
|
descriptionValidationError: 'Die Beschreibungslänge muss zwischen 3 und 160 Zeichen liegen'
|
package/lib/locales/en.js
CHANGED
|
@@ -259,6 +259,7 @@ export default {
|
|
|
259
259
|
protocol: 'Protocol',
|
|
260
260
|
purchase: 'Purchase',
|
|
261
261
|
reconnect: 'Reconnect',
|
|
262
|
+
disconnect: 'Disconnect',
|
|
262
263
|
readMore: 'More',
|
|
263
264
|
redirect: 'Redirect',
|
|
264
265
|
redirectCode: 'Redirect Code',
|
|
@@ -348,7 +349,8 @@ export default {
|
|
|
348
349
|
endTime: 'End time',
|
|
349
350
|
selected: 'Selected',
|
|
350
351
|
timeoutError: 'Timeout error',
|
|
351
|
-
tags: 'Tags'
|
|
352
|
+
tags: 'Tags',
|
|
353
|
+
sourceApp: 'Belong to App'
|
|
352
354
|
},
|
|
353
355
|
blocklet: {
|
|
354
356
|
external: 'External',
|
|
@@ -660,6 +662,7 @@ export default {
|
|
|
660
662
|
branding: 'Branding',
|
|
661
663
|
brandingHelp: 'More information about the blocklet will be displayed in the Store',
|
|
662
664
|
download: 'Download {name}',
|
|
665
|
+
deleteStoreTip: 'Are you sure you want to remove {name} from the connect Store list?',
|
|
663
666
|
delete: 'Delete {name}',
|
|
664
667
|
copyInstallUrl: 'Copy Install URL',
|
|
665
668
|
createResource: 'Create Resource',
|
|
@@ -676,6 +679,7 @@ export default {
|
|
|
676
679
|
createBlockletTip: 'You can create new blocklet through existing resources, components, and configuration in this application',
|
|
677
680
|
createBlocklet: 'New blocklet',
|
|
678
681
|
reconnectStoreTip: 'After reconnecting, a new developer will be bound. Are you sure you want to reconnect?',
|
|
682
|
+
disconnectStoreTip: 'After disconnecting, the blocklet will be removed from the store. Are you sure you want to disconnect?',
|
|
679
683
|
componentNotRunning: 'Blocklet {name} is not running, please start it first',
|
|
680
684
|
allComponentsNotRunning: 'Blocklets is not running, please start it first',
|
|
681
685
|
releaseEmptyTip: "There aren't any releases here",
|
package/lib/locales/es.js
CHANGED
|
@@ -356,7 +356,9 @@ export default {
|
|
|
356
356
|
blockletStudio: 'Estudio',
|
|
357
357
|
visitStore: 'Visitar tienda',
|
|
358
358
|
reconnect: 'Reconecta',
|
|
359
|
-
change: 'Cambiar'
|
|
359
|
+
change: 'Cambiar',
|
|
360
|
+
disconnect: 'Desconectar',
|
|
361
|
+
sourceApp: 'Pertenece a la aplicación'
|
|
360
362
|
},
|
|
361
363
|
blocklet: {
|
|
362
364
|
external: 'Externo',
|
|
@@ -727,7 +729,7 @@ export default {
|
|
|
727
729
|
},
|
|
728
730
|
resourceTip: 'Actualmente, como un Bloque de Recursos, no se puede instalar directamente desde la Tienda.',
|
|
729
731
|
whyCantSeeInStore: '¿Por qué no puedo ver este blocklet en la Tienda?',
|
|
730
|
-
whyCantSeeResourceBlockletInStore: '
|
|
732
|
+
whyCantSeeResourceBlockletInStore: 'Los Blocklets de recurso están ocultos de la página de listado de la tienda de forma predeterminada',
|
|
731
733
|
tenantScope: 'Inquilino',
|
|
732
734
|
blockletStudio: 'Blocklet Studio',
|
|
733
735
|
allComponentsNotRunning: 'Blocklets no está ejecutándose, por favor inícialo primero',
|
|
@@ -744,7 +746,9 @@ export default {
|
|
|
744
746
|
branding: 'Branding',
|
|
745
747
|
brandingHelp: 'Se mostrará más información sobre el blocklet en la tienda',
|
|
746
748
|
resourceSelect: 'Seleccionar recurso de blocklets',
|
|
747
|
-
resourceUpload: 'Cargar recurso desde tu disco (index.html es requerido en el archivo)'
|
|
749
|
+
resourceUpload: 'Cargar recurso desde tu disco (index.html es requerido en el archivo)',
|
|
750
|
+
deleteStoreTip: '¿Estás seguro de que quieres eliminar a {name} de la lista de la tienda Connect?',
|
|
751
|
+
disconnectStoreTip: 'Después de la desconexión, se eliminará el blocklet de la tienda. ¿Seguro que desea desconectar?'
|
|
748
752
|
},
|
|
749
753
|
titleValidationError: 'La longitud del título debe ser de al menos 3 caracteres',
|
|
750
754
|
descriptionValidationError: 'La longitud de la descripción debe estar entre 3 y 160 caracteres'
|
package/lib/locales/fr.js
CHANGED
|
@@ -356,7 +356,9 @@ export default {
|
|
|
356
356
|
blockletStudio: 'Studio',
|
|
357
357
|
visitStore: 'Visiter le magasin',
|
|
358
358
|
reconnect: 'Reconnecter',
|
|
359
|
-
change: 'Changer'
|
|
359
|
+
change: 'Changer',
|
|
360
|
+
disconnect: 'Déconnecter',
|
|
361
|
+
sourceApp: "Appartient à l'application"
|
|
360
362
|
},
|
|
361
363
|
blocklet: {
|
|
362
364
|
external: 'Externe',
|
|
@@ -727,7 +729,7 @@ export default {
|
|
|
727
729
|
},
|
|
728
730
|
resourceTip: 'Actuellement, en tant que bloc de ressources, il ne peut pas être installé directement depuis le Store.',
|
|
729
731
|
whyCantSeeInStore: 'Pourquoi je ne peux pas voir ce blocklet dans le Store?',
|
|
730
|
-
whyCantSeeResourceBlockletInStore: '
|
|
732
|
+
whyCantSeeResourceBlockletInStore: 'Les Blocklets de ressources sont masqués par défaut de la page de liste du magasin',
|
|
731
733
|
tenantScope: 'Locataire',
|
|
732
734
|
blockletStudio: 'Blocklet Studio',
|
|
733
735
|
allComponentsNotRunning: "Blocklets ne fonctionne pas, veuillez le démarrer d'abord",
|
|
@@ -744,7 +746,9 @@ export default {
|
|
|
744
746
|
branding: 'Branding',
|
|
745
747
|
brandingHelp: "Plus d'informations sur le blocklet seront affichées dans le magasin",
|
|
746
748
|
resourceSelect: 'Sélectionnez une ressource des blocklets',
|
|
747
|
-
resourceUpload: "Téléchargez la ressource depuis votre disque (index.html est requis dans l'archive)"
|
|
749
|
+
resourceUpload: "Téléchargez la ressource depuis votre disque (index.html est requis dans l'archive)",
|
|
750
|
+
deleteStoreTip: 'Êtes-vous sûr de vouloir supprimer {name} de la liste du magasin Connect?',
|
|
751
|
+
disconnectStoreTip: 'Le bloclet sera supprimé du store après sa déconnexion. Êtes-vous sûr de vouloir le déconnecter ?'
|
|
748
752
|
},
|
|
749
753
|
titleValidationError: "La longueur du titre doit être d'au moins 3 caractères",
|
|
750
754
|
descriptionValidationError: 'La longueur de la description doit être comprise entre 3 et 160 caractères'
|
package/lib/locales/hi.js
CHANGED
|
@@ -356,7 +356,9 @@ export default {
|
|
|
356
356
|
blockletStudio: 'स्टूडियो',
|
|
357
357
|
visitStore: 'स्टोर को देखें',
|
|
358
358
|
reconnect: 'पुनः कनेक्ट करें',
|
|
359
|
-
change: 'परिवर्तन'
|
|
359
|
+
change: 'परिवर्तन',
|
|
360
|
+
disconnect: 'डिस्कनेक्ट करें',
|
|
361
|
+
sourceApp: 'ऐप से संबद्ध'
|
|
360
362
|
},
|
|
361
363
|
blocklet: {
|
|
362
364
|
external: 'बाहरी',
|
|
@@ -727,7 +729,7 @@ export default {
|
|
|
727
729
|
},
|
|
728
730
|
resourceTip: 'वर्तमान में, रिसोर्स ब्लॉकलेट के रूप में, यह स्टोर से सीधे स्थापित नहीं किया जा सकता है।',
|
|
729
731
|
whyCantSeeInStore: 'क्यों मुझे स्टोर में इस ब्लॉकलेट को नहीं देख सकता?',
|
|
730
|
-
whyCantSeeResourceBlockletInStore: '
|
|
732
|
+
whyCantSeeResourceBlockletInStore: 'संसाधन ब्लॉकलेट डिफ़ॉल्ट रूप से स्टोर लिस्टिंग पेज से छुपे हुए हैं',
|
|
731
733
|
tenantScope: 'किरायेदार',
|
|
732
734
|
blockletStudio: 'ब्लॉकलेट स्टूडियो',
|
|
733
735
|
allComponentsNotRunning: 'ब्लॉकलेट्स चल नहीं रहा है, कृपया पहले इसे शुरू करें',
|
|
@@ -744,7 +746,9 @@ export default {
|
|
|
744
746
|
branding: 'ब्रांडिंग',
|
|
745
747
|
brandingHelp: 'स्टोर में ब्लॉकलेट के बारे में अधिक जानकारी दी जाएगी',
|
|
746
748
|
resourceSelect: 'ब्लॉकलेट से संसाधन का चयन करें',
|
|
747
|
-
resourceUpload: 'अपनी डिस्क से संसाधन अपलोड करें (संग्रह में index.html आवश्यक है)'
|
|
749
|
+
resourceUpload: 'अपनी डिस्क से संसाधन अपलोड करें (संग्रह में index.html आवश्यक है)',
|
|
750
|
+
deleteStoreTip: 'क्या आप वाकई {name} को कनेक्ट स्टोर से हटाना चाहते हैं?',
|
|
751
|
+
disconnectStoreTip: 'ब्लॉकलेट को डिस्कनेक्ट करने के बाद उसे स्टोर से हटा दिया जाएगा। क्या आप वाकई में उसे डिस्कनेक्ट करना चाहते हैं?'
|
|
748
752
|
},
|
|
749
753
|
titleValidationError: 'शीर्षक की लंबाई कम से कम 3 अक्षर होनी चाहिए',
|
|
750
754
|
descriptionValidationError: 'विवरण की लंबाई 3 और 160 वर्णों के बीच होनी चाहिए'
|
package/lib/locales/i18n.db
CHANGED
|
Binary file
|