@dxos/shell 0.6.1-main.e05b43b → 0.6.1-main.fac53f5
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/dist/bundle/shell.mjs +198 -121
- package/dist/bundle/shell.mjs.map +1 -1
- package/dist/bundle/shell.umd.js +5 -5
- package/dist/bundle/shell.umd.js.map +1 -1
- package/dist/bundle/style.css +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react.mjs +171 -115
- package/dist/lib/browser/react.mjs.map +3 -3
- package/dist/types/src/components/AgentConfig.d.ts +1 -1
- package/dist/types/src/components/AgentConfig.d.ts.map +1 -1
- package/dist/types/src/components/AgentConfig.js +36 -24
- package/dist/types/src/components/AgentConfig.js.map +1 -1
- package/dist/types/src/components/DeviceList/DeviceList.d.ts +2 -2
- package/dist/types/src/components/DeviceList/DeviceList.d.ts.map +1 -1
- package/dist/types/src/components/DeviceList/DeviceList.js +2 -2
- package/dist/types/src/components/DeviceList/DeviceList.js.map +1 -1
- package/dist/types/src/components/DeviceList/DeviceListItem.d.ts +2 -2
- package/dist/types/src/components/DeviceList/DeviceListItem.d.ts.map +1 -1
- package/dist/types/src/components/DeviceList/DeviceListItem.js +11 -5
- package/dist/types/src/components/DeviceList/DeviceListItem.js.map +1 -1
- package/dist/types/src/components/DeviceList/DeviceListProps.d.ts +6 -7
- package/dist/types/src/components/DeviceList/DeviceListProps.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js +2 -5
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanelProps.d.ts +0 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanelProps.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.d.ts +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.js +5 -5
- package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/useAgentHandlers.d.ts +2 -7
- package/dist/types/src/panels/IdentityPanel/useAgentHandlers.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/useAgentHandlers.js +78 -43
- package/dist/types/src/panels/IdentityPanel/useAgentHandlers.js.map +1 -1
- package/dist/types/src/translations/locales/en-US.d.ts +5 -0
- package/dist/types/src/translations/locales/en-US.d.ts.map +1 -1
- package/dist/types/src/translations/locales/en-US.js +5 -0
- package/dist/types/src/translations/locales/en-US.js.map +1 -1
- package/package.json +23 -23
- package/src/components/AgentConfig.tsx +100 -48
- package/src/components/DeviceList/DeviceList.tsx +4 -3
- package/src/components/DeviceList/DeviceListItem.tsx +66 -28
- package/src/components/DeviceList/DeviceListProps.ts +6 -7
- package/src/panels/IdentityPanel/IdentityPanel.tsx +2 -5
- package/src/panels/IdentityPanel/IdentityPanelProps.ts +0 -1
- package/src/panels/IdentityPanel/steps/IdentityActionChooser.tsx +7 -15
- package/src/panels/IdentityPanel/useAgentHandlers.ts +77 -41
- package/src/translations/locales/en-US.ts +6 -0
|
@@ -11,48 +11,85 @@ const react_client_1 = require("@dxos/react-client");
|
|
|
11
11
|
const invitations_1 = require("@dxos/react-client/invitations");
|
|
12
12
|
const useAgentHandlers = ({ invitations, identity, }) => {
|
|
13
13
|
const [validationMessage, setValidationMessage] = (0, react_1.useState)('');
|
|
14
|
-
const [agentStatus, setAgentStatus] = (0, react_1.useState)('');
|
|
15
|
-
const [agentActive, setAgentActive] = (0, react_1.useState)(false);
|
|
14
|
+
const [agentStatus, setAgentStatus] = (0, react_1.useState)('getting');
|
|
16
15
|
const agentHostingProviderClient = (0, react_client_1.useAgentHostingClient)();
|
|
17
16
|
const client = (0, react_client_1.useClient)();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
setAgentStatus(
|
|
17
|
+
const updateAgentStatus = async () => {
|
|
18
|
+
var _a;
|
|
19
|
+
// TODO(nf): if agent exists, subscribe to updates instead of oneshot status
|
|
20
|
+
if (agentHostingProviderClient) {
|
|
21
|
+
setAgentStatus('getting');
|
|
22
|
+
try {
|
|
23
|
+
const agentId = await (agentHostingProviderClient === null || agentHostingProviderClient === void 0 ? void 0 : agentHostingProviderClient.getAgent((_a = identity === null || identity === void 0 ? void 0 : identity.identityKey.truncate()) !== null && _a !== void 0 ? _a : 'never'));
|
|
24
|
+
if (agentId) {
|
|
25
|
+
setAgentStatus('created');
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
setAgentStatus('creatable');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
setAgentStatus('error');
|
|
33
|
+
setValidationMessage(`Couldn’t check agent status: ${err.message}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
setAgentStatus('error');
|
|
38
|
+
setValidationMessage('No agent provider configured.');
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const createAgent = async (invitationCode) => {
|
|
42
|
+
(0, invariant_1.invariant)(identity, 'Identity not found');
|
|
43
|
+
if (agentHostingProviderClient) {
|
|
44
|
+
setAgentStatus('creating');
|
|
45
|
+
setValidationMessage('');
|
|
46
|
+
try {
|
|
47
|
+
const agentId = await (agentHostingProviderClient === null || agentHostingProviderClient === void 0 ? void 0 : agentHostingProviderClient.createAgent(invitationCode, identity.identityKey.truncate()));
|
|
48
|
+
if (agentId) {
|
|
49
|
+
setAgentStatus('created');
|
|
27
50
|
}
|
|
28
51
|
else {
|
|
29
|
-
|
|
30
|
-
setValidationMessage('
|
|
52
|
+
setAgentStatus('creatable');
|
|
53
|
+
setValidationMessage('Error creating agent.');
|
|
31
54
|
}
|
|
32
55
|
}
|
|
33
|
-
|
|
34
|
-
setValidationMessage(
|
|
56
|
+
catch (err) {
|
|
57
|
+
setValidationMessage(`Error creating agent: ${err.message}`);
|
|
58
|
+
return updateAgentStatus();
|
|
35
59
|
}
|
|
36
|
-
}
|
|
37
|
-
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
setAgentStatus('error');
|
|
63
|
+
setValidationMessage('No agent provider configured.');
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const destroyAgent = async () => {
|
|
67
|
+
(0, invariant_1.invariant)(identity, 'Identity not found');
|
|
68
|
+
if (agentHostingProviderClient) {
|
|
69
|
+
setAgentStatus('destroying');
|
|
70
|
+
setValidationMessage('');
|
|
71
|
+
try {
|
|
72
|
+
await (agentHostingProviderClient === null || agentHostingProviderClient === void 0 ? void 0 : agentHostingProviderClient.destroyAgent(identity.identityKey.truncate()));
|
|
73
|
+
setAgentStatus('creatable');
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
setValidationMessage(`Error destroying agent: ${err.message}`);
|
|
77
|
+
return updateAgentStatus();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
setAgentStatus('error');
|
|
82
|
+
setValidationMessage('No agent provider configured.');
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
(0, react_1.useEffect)(() => {
|
|
86
|
+
void updateAgentStatus();
|
|
38
87
|
}, []);
|
|
39
88
|
const handleAgentCreate = (0, react_1.useCallback)(async (invitation) => {
|
|
40
89
|
const invitationCode = invitations_1.InvitationEncoder.encode(invitation);
|
|
41
90
|
if (invitation.state === invitations_1.Invitation.State.CONNECTING) {
|
|
42
91
|
log_1.log.info(JSON.stringify({ invitationCode, authCode: invitation.authCode }));
|
|
43
|
-
|
|
44
|
-
if (agentHostingProviderClient) {
|
|
45
|
-
try {
|
|
46
|
-
const res = await (agentHostingProviderClient === null || agentHostingProviderClient === void 0 ? void 0 : agentHostingProviderClient.createAgent(invitationCode, identity.identityKey.truncate()));
|
|
47
|
-
// TODO(nf): human-consumable response from API
|
|
48
|
-
setAgentStatus(res);
|
|
49
|
-
setAgentActive(true);
|
|
50
|
-
setValidationMessage('');
|
|
51
|
-
}
|
|
52
|
-
catch (err) {
|
|
53
|
-
setValidationMessage(`error creating agent: ${err.message}`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
92
|
+
return createAgent(invitationCode);
|
|
56
93
|
}
|
|
57
94
|
}, []);
|
|
58
95
|
const onAgentCreate = async () => {
|
|
@@ -65,20 +102,18 @@ const useAgentHandlers = ({ invitations, identity, }) => {
|
|
|
65
102
|
});
|
|
66
103
|
invitation.subscribe(handleAgentCreate);
|
|
67
104
|
};
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
105
|
+
const onAgentRefresh = async () => {
|
|
106
|
+
setValidationMessage('');
|
|
107
|
+
await updateAgentStatus();
|
|
108
|
+
};
|
|
109
|
+
return {
|
|
110
|
+
onAgentCreate,
|
|
111
|
+
onAgentDestroy: destroyAgent,
|
|
112
|
+
onAgentRefresh,
|
|
113
|
+
validationMessage,
|
|
114
|
+
agentStatus,
|
|
115
|
+
agentHostingEnabled: !!agentHostingProviderClient,
|
|
80
116
|
};
|
|
81
|
-
return { onAgentCreate, onAgentDestroy, validationMessage, agentStatus, agentActive };
|
|
82
117
|
};
|
|
83
118
|
exports.useAgentHandlers = useAgentHandlers;
|
|
84
119
|
//# sourceMappingURL=useAgentHandlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentHandlers.js","sourceRoot":"","sources":["../../../../../src/panels/IdentityPanel/useAgentHandlers.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,iCAAyD;AAGzD,+CAA4C;AAC5C,mCAAgC;AAChC,qDAAsE;AAEtE,gEAA+E;
|
|
1
|
+
{"version":3,"file":"useAgentHandlers.js","sourceRoot":"","sources":["../../../../../src/panels/IdentityPanel/useAgentHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -138,5 +138,10 @@ export declare const os: {
|
|
|
138
138
|
'destroy agent label': string;
|
|
139
139
|
'agent device label': string;
|
|
140
140
|
'shell fallback title': string;
|
|
141
|
+
'creating agent label': string;
|
|
142
|
+
'destroying agent label': string;
|
|
143
|
+
'getting agent label': string;
|
|
144
|
+
'agent requested label': string;
|
|
145
|
+
'agent requested description': string;
|
|
141
146
|
};
|
|
142
147
|
//# sourceMappingURL=en-US.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../../../src/translations/locales/en-US.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../../../src/translations/locales/en-US.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJd,CAAC"}
|
|
@@ -144,5 +144,10 @@ exports.os = {
|
|
|
144
144
|
'destroy agent label': 'Shut down agent',
|
|
145
145
|
'agent device label': 'Your agent',
|
|
146
146
|
'shell fallback title': 'Shell failed to connect',
|
|
147
|
+
'creating agent label': 'Starting agent…',
|
|
148
|
+
'destroying agent label': 'Stopping agent…',
|
|
149
|
+
'getting agent label': 'Checking agent status…',
|
|
150
|
+
'agent requested label': 'Agent requested',
|
|
151
|
+
'agent requested description': 'The agent service is creating an agent for you. Once the agent connects, it will display in the devices list.',
|
|
147
152
|
};
|
|
148
153
|
//# sourceMappingURL=en-US.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-US.js","sourceRoot":"","sources":["../../../../../src/translations/locales/en-US.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"en-US.js","sourceRoot":"","sources":["../../../../../src/translations/locales/en-US.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/shell",
|
|
3
|
-
"version": "0.6.1-main.
|
|
3
|
+
"version": "0.6.1-main.fac53f5",
|
|
4
4
|
"description": "DXOS’s OS experiences",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -42,20 +42,20 @@
|
|
|
42
42
|
"react-qr-rounded": "^1.0.0",
|
|
43
43
|
"url-join": "^5.0.0",
|
|
44
44
|
"xstate": "^4.37.0",
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/client-services": "0.6.1-main.
|
|
48
|
-
"@dxos/debug": "0.6.1-main.
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/invariant": "0.6.1-main.
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/protocols": "0.6.1-main.
|
|
53
|
-
"@dxos/react-ui
|
|
54
|
-
"@dxos/react-ui-types": "0.6.1-main.
|
|
55
|
-
"@dxos/react-ui": "0.6.1-main.
|
|
56
|
-
"@dxos/rpc": "0.6.1-main.
|
|
57
|
-
"@dxos/
|
|
58
|
-
"@dxos/
|
|
45
|
+
"@dxos/async": "0.6.1-main.fac53f5",
|
|
46
|
+
"@dxos/client-protocol": "0.6.1-main.fac53f5",
|
|
47
|
+
"@dxos/client-services": "0.6.1-main.fac53f5",
|
|
48
|
+
"@dxos/debug": "0.6.1-main.fac53f5",
|
|
49
|
+
"@dxos/display-name": "0.6.1-main.fac53f5",
|
|
50
|
+
"@dxos/invariant": "0.6.1-main.fac53f5",
|
|
51
|
+
"@dxos/log": "0.6.1-main.fac53f5",
|
|
52
|
+
"@dxos/protocols": "0.6.1-main.fac53f5",
|
|
53
|
+
"@dxos/react-ui": "0.6.1-main.fac53f5",
|
|
54
|
+
"@dxos/react-ui-types": "0.6.1-main.fac53f5",
|
|
55
|
+
"@dxos/react-ui-theme": "0.6.1-main.fac53f5",
|
|
56
|
+
"@dxos/rpc-tunnel": "0.6.1-main.fac53f5",
|
|
57
|
+
"@dxos/rpc": "0.6.1-main.fac53f5",
|
|
58
|
+
"@dxos/util": "0.6.1-main.fac53f5"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -65,19 +65,19 @@
|
|
|
65
65
|
"react": "^18.2.0",
|
|
66
66
|
"react-dom": "^18.2.0",
|
|
67
67
|
"vite": "^5.2.9",
|
|
68
|
-
"@dxos/config": "0.6.1-main.
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/
|
|
71
|
-
"@dxos/
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/react-ui-theme": "0.6.1-main.
|
|
74
|
-
"@dxos/
|
|
68
|
+
"@dxos/config": "0.6.1-main.fac53f5",
|
|
69
|
+
"@dxos/protocols": "0.6.1-main.fac53f5",
|
|
70
|
+
"@dxos/random": "0.6.1-main.fac53f5",
|
|
71
|
+
"@dxos/react-async": "0.6.1-main.fac53f5",
|
|
72
|
+
"@dxos/react-client": "0.6.1-main.fac53f5",
|
|
73
|
+
"@dxos/react-ui-theme": "0.6.1-main.fac53f5",
|
|
74
|
+
"@dxos/storybook-utils": "0.6.1-main.fac53f5"
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
77
|
"@phosphor-icons/react": "^2.1.5",
|
|
78
78
|
"react": "^18.2.0",
|
|
79
79
|
"react-dom": "^18.2.0",
|
|
80
|
-
"@dxos/react-client": "0.6.1-main.
|
|
80
|
+
"@dxos/react-client": "0.6.1-main.fac53f5"
|
|
81
81
|
},
|
|
82
82
|
"publishConfig": {
|
|
83
83
|
"access": "public"
|
|
@@ -2,74 +2,126 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Database, Plus, Power } from '@phosphor-icons/react';
|
|
5
|
+
import { ArrowsClockwise, Database, Plus, Power } from '@phosphor-icons/react';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
8
|
import { Avatar, Button, Link, Tooltip, Trans, useTranslation } from '@dxos/react-ui';
|
|
9
|
-
import { descriptionText, getSize, mx } from '@dxos/react-ui-theme';
|
|
9
|
+
import { descriptionText, getSize, mx, valenceColorText } from '@dxos/react-ui-theme';
|
|
10
10
|
|
|
11
11
|
import { type AgentFormProps } from './DeviceList';
|
|
12
12
|
|
|
13
|
-
export const AgentConfig = ({
|
|
13
|
+
export const AgentConfig = ({
|
|
14
|
+
agentStatus,
|
|
15
|
+
validationMessage,
|
|
16
|
+
onAgentDestroy,
|
|
17
|
+
onAgentCreate,
|
|
18
|
+
onAgentRefresh,
|
|
19
|
+
}: Omit<AgentFormProps, 'agentHostingEnabled'>) => {
|
|
14
20
|
const { t } = useTranslation('os');
|
|
15
21
|
return (
|
|
16
22
|
<>
|
|
17
23
|
<h2 className={mx(descriptionText, 'text-center mbs-4')}>{t('agent heading')}</h2>
|
|
18
|
-
{
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
24
|
+
{validationMessage && (
|
|
25
|
+
<p role='alert' className={mx(valenceColorText('error'), 'mlb-2')}>
|
|
26
|
+
{validationMessage}
|
|
27
|
+
</p>
|
|
28
|
+
)}
|
|
29
|
+
{agentStatus === 'created' ||
|
|
30
|
+
agentStatus === 'creating' ||
|
|
31
|
+
agentStatus === 'getting' ||
|
|
32
|
+
agentStatus === 'destroying' ? (
|
|
33
|
+
<>
|
|
34
|
+
<div
|
|
35
|
+
role='group'
|
|
36
|
+
className='mlb-2 flex gap-2 items-center'
|
|
37
|
+
aria-describedby='devices-panel.create-agent.description'
|
|
38
|
+
>
|
|
39
|
+
<Avatar.Root status={agentStatus === 'created' ? 'warning' : 'inactive'} variant='square'>
|
|
40
|
+
<Avatar.Frame classNames='place-self-center'>
|
|
41
|
+
<Database
|
|
42
|
+
weight='duotone'
|
|
43
|
+
width={24}
|
|
44
|
+
height={24}
|
|
45
|
+
x={8}
|
|
46
|
+
y={8}
|
|
47
|
+
{...(agentStatus !== 'created' && { className: 'opacity-50' })}
|
|
48
|
+
/>
|
|
49
|
+
</Avatar.Frame>
|
|
50
|
+
<Avatar.Label classNames='flex-1 text-sm truncate'>
|
|
51
|
+
{t(
|
|
52
|
+
agentStatus === 'created'
|
|
53
|
+
? 'agent requested label'
|
|
54
|
+
: agentStatus === 'creating'
|
|
55
|
+
? 'creating agent label'
|
|
56
|
+
: agentStatus === 'destroying'
|
|
57
|
+
? 'destroying agent label'
|
|
58
|
+
: 'getting agent label',
|
|
59
|
+
)}
|
|
60
|
+
</Avatar.Label>
|
|
61
|
+
</Avatar.Root>
|
|
62
|
+
{agentStatus === 'created' && (
|
|
63
|
+
<Tooltip.Root>
|
|
64
|
+
<Tooltip.Trigger asChild>
|
|
65
|
+
<Button
|
|
66
|
+
variant='ghost'
|
|
67
|
+
classNames='pli-0 is-[--rail-action] bs-[--rail-action]'
|
|
68
|
+
data-testid='agent.destroy'
|
|
69
|
+
onClick={onAgentDestroy}
|
|
70
|
+
>
|
|
71
|
+
<span className='sr-only'>{t('destroy agent label')}</span>
|
|
72
|
+
<Power className={getSize(5)} />
|
|
73
|
+
</Button>
|
|
74
|
+
</Tooltip.Trigger>
|
|
75
|
+
<Tooltip.Portal>
|
|
76
|
+
<Tooltip.Content side='bottom' classNames='z-50'>
|
|
77
|
+
{t('destroy agent label')}
|
|
78
|
+
</Tooltip.Content>
|
|
79
|
+
</Tooltip.Portal>
|
|
80
|
+
</Tooltip.Root>
|
|
81
|
+
)}
|
|
82
|
+
</div>
|
|
83
|
+
{agentStatus === 'created' && (
|
|
84
|
+
<p id='devices-panel.create-agent.description' className={mx(descriptionText, 'mlb-2')}>
|
|
85
|
+
{t('agent requested description')}
|
|
86
|
+
</p>
|
|
87
|
+
)}
|
|
88
|
+
</>
|
|
45
89
|
) : (
|
|
46
90
|
<>
|
|
47
91
|
<Button
|
|
48
92
|
variant='ghost'
|
|
49
93
|
classNames='mlb-2 is-full justify-start gap-2 !pis-0 !pie-3'
|
|
50
|
-
data-testid='devices-panel.create-agent'
|
|
51
|
-
onClick={onAgentCreate}
|
|
94
|
+
data-testid={agentStatus === 'creatable' ? 'devices-panel.create-agent' : 'devices-panel.agent-error'}
|
|
95
|
+
onClick={agentStatus === 'creatable' ? onAgentCreate : onAgentRefresh}
|
|
52
96
|
aria-describedby='devices-panel.create-agent.description'
|
|
53
97
|
>
|
|
54
98
|
<div role='img' className={mx(getSize(8), 'm-1 rounded-sm surface-input grid place-items-center')}>
|
|
55
|
-
|
|
99
|
+
{agentStatus === 'creatable' ? (
|
|
100
|
+
<Plus weight='light' className={getSize(6)} />
|
|
101
|
+
) : (
|
|
102
|
+
<ArrowsClockwise weight='light' className={getSize(6)} />
|
|
103
|
+
)}
|
|
56
104
|
</div>
|
|
57
|
-
<span className='grow font-medium text-start'>
|
|
105
|
+
<span className='grow font-medium text-start'>
|
|
106
|
+
{t(agentStatus === 'creatable' ? 'create agent label' : '')}
|
|
107
|
+
</span>
|
|
58
108
|
</Button>
|
|
59
|
-
|
|
60
|
-
<
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
109
|
+
{agentStatus === 'creatable' && (
|
|
110
|
+
<div role='none' className='space-y-2' id='devices-panel.create-agent.description'>
|
|
111
|
+
<p className={descriptionText}>
|
|
112
|
+
<Trans
|
|
113
|
+
{...{
|
|
114
|
+
t,
|
|
115
|
+
i18nKey: 'create agent clickwrap',
|
|
116
|
+
components: {
|
|
117
|
+
tosLink: <Link target='_blank' rel='noreferrer' />,
|
|
118
|
+
},
|
|
119
|
+
}}
|
|
120
|
+
/>
|
|
121
|
+
</p>
|
|
122
|
+
<p className={descriptionText}>{t('create agent description')}</p>
|
|
123
|
+
</div>
|
|
124
|
+
)}
|
|
73
125
|
</>
|
|
74
126
|
)}
|
|
75
127
|
</>
|
|
@@ -10,7 +10,7 @@ import { Button, List, useTranslation } from '@dxos/react-ui';
|
|
|
10
10
|
import { descriptionText, getSize, mx } from '@dxos/react-ui-theme';
|
|
11
11
|
|
|
12
12
|
import { DeviceListItem } from './DeviceListItem';
|
|
13
|
-
import { type DeviceListProps } from './DeviceListProps';
|
|
13
|
+
import { type AgentFormProps, type DeviceListProps } from './DeviceListProps';
|
|
14
14
|
|
|
15
15
|
export const DeviceList = ({
|
|
16
16
|
devices,
|
|
@@ -19,7 +19,8 @@ export const DeviceList = ({
|
|
|
19
19
|
onClickEdit,
|
|
20
20
|
onClickReset,
|
|
21
21
|
onClickJoinExisting,
|
|
22
|
-
|
|
22
|
+
onAgentDestroy,
|
|
23
|
+
}: DeviceListProps & Pick<AgentFormProps, 'onAgentDestroy'>) => {
|
|
23
24
|
const { t } = useTranslation('os');
|
|
24
25
|
return (
|
|
25
26
|
<>
|
|
@@ -32,7 +33,7 @@ export const DeviceList = ({
|
|
|
32
33
|
key={device.deviceKey.toHex()}
|
|
33
34
|
device={device}
|
|
34
35
|
onClickEdit={() => onClickEdit?.(device)}
|
|
35
|
-
{...{ onClickReset, onClickJoinExisting, connectionState }}
|
|
36
|
+
{...{ onClickReset, onClickJoinExisting, connectionState, onAgentDestroy }}
|
|
36
37
|
/>
|
|
37
38
|
);
|
|
38
39
|
})}
|