@dxos/shell 0.6.13 → 0.6.14-main.2b6a0f3
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 +12070 -15401
- package/dist/bundle/shell.mjs.map +1 -1
- package/dist/bundle/shell.umd.js +87 -94
- 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 +551 -453
- package/dist/lib/browser/react.mjs.map +4 -4
- package/dist/lib/browser/testing/index.mjs +2 -7
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/types/src/components/CompoundButton/CompoundButton.stories.js +1 -1
- package/dist/types/src/components/CompoundButton/CompoundButton.stories.js.map +1 -1
- package/dist/types/src/components/IdentityList/SpaceMemberList.stories.d.ts +0 -3
- package/dist/types/src/components/IdentityList/SpaceMemberList.stories.d.ts.map +1 -1
- package/dist/types/src/components/IdentityList/SpaceMemberList.stories.js +1 -2
- package/dist/types/src/components/IdentityList/SpaceMemberList.stories.js.map +1 -1
- package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts +0 -3
- package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts.map +1 -1
- package/dist/types/src/components/InvitationList/InvitationList.stories.js +1 -2
- package/dist/types/src/components/InvitationList/InvitationList.stories.js.map +1 -1
- package/dist/types/src/components/Panel/Panel.stories.d.ts +0 -3
- package/dist/types/src/components/Panel/Panel.stories.d.ts.map +1 -1
- package/dist/types/src/components/Panel/Panel.stories.js +1 -2
- package/dist/types/src/components/Panel/Panel.stories.js.map +1 -1
- package/dist/types/src/components/Viewport/Viewport.stories.js +1 -1
- package/dist/types/src/components/Viewport/Viewport.stories.js.map +1 -1
- package/dist/types/src/composites/Shell/Shell.d.ts.map +1 -1
- package/dist/types/src/composites/Shell/Shell.js +4 -3
- package/dist/types/src/composites/Shell/Shell.js.map +1 -1
- package/dist/types/src/composites/Shell/run-shell.js +1 -1
- package/dist/types/src/composites/Shell/run-shell.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.js +7 -2
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanelProps.d.ts +4 -4
- package/dist/types/src/panels/IdentityPanel/IdentityPanelProps.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/useAgentHandlers.d.ts +1 -1
- package/dist/types/src/panels/IdentityPanel/useAgentHandlers.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/useAgentHandlers.js +10 -108
- package/dist/types/src/panels/IdentityPanel/useAgentHandlers.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/useEdgeAgentsHandlers.d.ts +8 -0
- package/dist/types/src/panels/IdentityPanel/useEdgeAgentsHandlers.d.ts.map +1 -0
- package/dist/types/src/panels/IdentityPanel/useEdgeAgentsHandlers.js +84 -0
- package/dist/types/src/panels/IdentityPanel/useEdgeAgentsHandlers.js.map +1 -0
- package/dist/types/src/panels/IdentityPanel/useKubeAgentHandlers.d.ts +8 -0
- package/dist/types/src/panels/IdentityPanel/useKubeAgentHandlers.d.ts.map +1 -0
- package/dist/types/src/panels/IdentityPanel/useKubeAgentHandlers.js +119 -0
- package/dist/types/src/panels/IdentityPanel/useKubeAgentHandlers.js.map +1 -0
- package/dist/types/src/panels/JoinPanel/JoinPanel.d.ts.map +1 -1
- package/dist/types/src/panels/JoinPanel/JoinPanel.js +24 -16
- package/dist/types/src/panels/JoinPanel/JoinPanel.js.map +1 -1
- package/dist/types/src/panels/JoinPanel/JoinPanel.stories.d.ts +3 -0
- package/dist/types/src/panels/JoinPanel/JoinPanel.stories.d.ts.map +1 -1
- package/dist/types/src/panels/JoinPanel/JoinPanel.stories.js +3 -2
- package/dist/types/src/panels/JoinPanel/JoinPanel.stories.js.map +1 -1
- package/dist/types/src/panels/JoinPanel/JoinPanelProps.d.ts +7 -3
- package/dist/types/src/panels/JoinPanel/JoinPanelProps.d.ts.map +1 -1
- package/dist/types/src/panels/JoinPanel/joinMachine.d.ts.map +1 -1
- package/dist/types/src/panels/JoinPanel/joinMachine.js +2 -0
- package/dist/types/src/panels/JoinPanel/joinMachine.js.map +1 -1
- package/dist/types/src/panels/JoinPanel/steps/InvitationAuthenticator.d.ts +3 -1
- package/dist/types/src/panels/JoinPanel/steps/InvitationAuthenticator.d.ts.map +1 -1
- package/dist/types/src/panels/JoinPanel/steps/InvitationAuthenticator.js +9 -6
- package/dist/types/src/panels/JoinPanel/steps/InvitationAuthenticator.js.map +1 -1
- package/dist/types/src/panels/JoinPanel/steps/InvitationInput.d.ts.map +1 -1
- package/dist/types/src/panels/JoinPanel/steps/InvitationInput.js +8 -2
- package/dist/types/src/panels/JoinPanel/steps/InvitationInput.js.map +1 -1
- package/dist/types/src/panels/Panels.stories.js +1 -1
- package/dist/types/src/panels/Panels.stories.js.map +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.js +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.js.map +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.stories.js +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.stories.js.map +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanelProps.d.ts +4 -4
- package/dist/types/src/panels/SpacePanel/SpacePanelProps.d.ts.map +1 -1
- package/dist/types/src/playwright/invitations-manager.d.ts +1 -1
- package/dist/types/src/playwright/invitations-manager.d.ts.map +1 -1
- package/dist/types/src/playwright/invitations-manager.js +4 -10
- package/dist/types/src/playwright/invitations-manager.js.map +1 -1
- package/dist/types/src/playwright/invitations.spec.js +31 -32
- package/dist/types/src/playwright/invitations.spec.js.map +1 -1
- package/dist/types/src/playwright/playwright.config.d.ts +2 -2
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
- package/dist/types/src/playwright/playwright.config.js +12 -2
- package/dist/types/src/playwright/playwright.config.js.map +1 -1
- package/dist/types/src/testing/shell-manager.d.ts +1 -0
- package/dist/types/src/testing/shell-manager.d.ts.map +1 -1
- package/dist/types/src/testing/shell-manager.js +2 -7
- package/dist/types/src/testing/shell-manager.js.map +1 -1
- package/dist/types/src/translations/locales/en-US.d.ts +1 -0
- package/dist/types/src/translations/locales/en-US.d.ts.map +1 -1
- package/dist/types/src/translations/locales/en-US.js +4 -3
- package/dist/types/src/translations/locales/en-US.js.map +1 -1
- package/package.json +29 -27
- package/src/components/CompoundButton/CompoundButton.stories.tsx +1 -1
- package/src/components/IdentityList/SpaceMemberList.stories.tsx +1 -2
- package/src/components/InvitationList/InvitationList.stories.tsx +1 -2
- package/src/components/Panel/Panel.stories.tsx +1 -2
- package/src/components/Viewport/Viewport.stories.tsx +1 -1
- package/src/composites/Shell/Shell.tsx +4 -3
- package/src/composites/Shell/run-shell.tsx +1 -1
- package/src/panels/IdentityPanel/IdentityPanel.stories.tsx +7 -2
- package/src/panels/IdentityPanel/IdentityPanel.tsx +3 -3
- package/src/panels/IdentityPanel/IdentityPanelProps.ts +4 -4
- package/src/panels/IdentityPanel/useAgentHandlers.ts +9 -114
- package/src/panels/IdentityPanel/useEdgeAgentsHandlers.ts +96 -0
- package/src/panels/IdentityPanel/useKubeAgentHandlers.ts +128 -0
- package/src/panels/JoinPanel/JoinPanel.stories.tsx +3 -2
- package/src/panels/JoinPanel/JoinPanel.tsx +31 -9
- package/src/panels/JoinPanel/JoinPanelProps.ts +7 -3
- package/src/panels/JoinPanel/joinMachine.ts +2 -0
- package/src/panels/JoinPanel/steps/InvitationAuthenticator.tsx +29 -16
- package/src/panels/JoinPanel/steps/InvitationInput.tsx +9 -17
- package/src/panels/Panels.stories.tsx +1 -1
- package/src/panels/SpacePanel/SpacePanel.stories.tsx +1 -1
- package/src/panels/SpacePanel/SpacePanel.tsx +3 -3
- package/src/panels/SpacePanel/SpacePanelProps.ts +4 -4
- package/src/playwright/invitations-manager.ts +4 -8
- package/src/playwright/invitations.spec.ts +32 -33
- package/src/playwright/playwright.config.ts +13 -2
- package/src/testing/shell-manager.ts +4 -9
- package/src/translations/locales/en-US.ts +4 -3
|
@@ -1233,21 +1233,21 @@ var SpaceListItem = /* @__PURE__ */ forwardRef8(({ space, onClick }, ref) => {
|
|
|
1233
1233
|
});
|
|
1234
1234
|
|
|
1235
1235
|
// packages/sdk/shell/src/composites/IdentityDialog/IdentityDialog.tsx
|
|
1236
|
-
import
|
|
1236
|
+
import React40 from "react";
|
|
1237
1237
|
import { Dialog, useId as useId10 } from "@dxos/react-ui";
|
|
1238
1238
|
|
|
1239
1239
|
// packages/sdk/shell/src/panels/IdentityPanel/IdentityPanel.tsx
|
|
1240
1240
|
import { Key, Plugs, PlugsConnected } from "@phosphor-icons/react";
|
|
1241
|
-
import
|
|
1241
|
+
import React28, { useEffect as useEffect4, useMemo as useMemo3, useState as useState8 } from "react";
|
|
1242
1242
|
import { generateName as generateName3 } from "@dxos/display-name";
|
|
1243
|
-
import { log as
|
|
1244
|
-
import { useClient as
|
|
1243
|
+
import { log as log5 } from "@dxos/log";
|
|
1244
|
+
import { useClient as useClient6 } from "@dxos/react-client";
|
|
1245
1245
|
import { useIdentity, useDevices, useHaloInvitations as useHaloInvitations2 } from "@dxos/react-client/halo";
|
|
1246
1246
|
import { useInvitationStatus as useInvitationStatus2 } from "@dxos/react-client/invitations";
|
|
1247
1247
|
import { useNetworkStatus, ConnectionState as ConnectionState2 } from "@dxos/react-client/mesh";
|
|
1248
|
-
import { Avatar as Avatar6,
|
|
1248
|
+
import { Avatar as Avatar6, Input as Input2, Toolbar as Toolbar3, Tooltip as Tooltip7, useId as useId6, useTranslation as useTranslation13 } from "@dxos/react-ui";
|
|
1249
1249
|
import { getSize as getSize13 } from "@dxos/react-ui-theme";
|
|
1250
|
-
import { hexToEmoji as
|
|
1250
|
+
import { hexToEmoji as hexToEmoji3, hexToHue, keyToFallback as keyToFallback3 } from "@dxos/util";
|
|
1251
1251
|
|
|
1252
1252
|
// packages/sdk/shell/src/panels/IdentityPanel/identityMachine.ts
|
|
1253
1253
|
import { useMachine } from "@xstate/react";
|
|
@@ -1416,24 +1416,106 @@ var IdentityActionChooserImpl = ({ send, onCreateInvitationClick, devices, conne
|
|
|
1416
1416
|
}), !managedDeviceAvailable && agentHostingEnabled && /* @__PURE__ */ React25.createElement(AgentConfig, agentProps));
|
|
1417
1417
|
};
|
|
1418
1418
|
|
|
1419
|
-
// packages/sdk/shell/src/panels/IdentityPanel/steps/ProfileForm.tsx
|
|
1420
|
-
import React26, { useState as useState5 } from "react";
|
|
1421
|
-
import { log as log3 } from "@dxos/log";
|
|
1422
|
-
import { useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1423
|
-
import { hexToEmoji as hexToEmoji2, hexToHue } from "@dxos/util";
|
|
1424
|
-
|
|
1425
1419
|
// packages/sdk/shell/src/panels/IdentityPanel/useAgentHandlers.ts
|
|
1426
|
-
import {
|
|
1420
|
+
import { useClient as useClient5 } from "@dxos/react-client";
|
|
1421
|
+
|
|
1422
|
+
// packages/sdk/shell/src/panels/IdentityPanel/useEdgeAgentsHandlers.ts
|
|
1423
|
+
import { useEffect as useEffect2, useState as useState5 } from "react";
|
|
1427
1424
|
import { invariant } from "@dxos/invariant";
|
|
1428
|
-
import {
|
|
1429
|
-
import { useClient as useClient3
|
|
1425
|
+
import { QueryAgentStatusResponse } from "@dxos/protocols/proto/dxos/client/services";
|
|
1426
|
+
import { useClient as useClient3 } from "@dxos/react-client";
|
|
1427
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/IdentityPanel/useEdgeAgentsHandlers.ts";
|
|
1428
|
+
var useEdgeAgentHandlers = ({ identity }) => {
|
|
1429
|
+
const [validationMessage, setValidationMessage] = useState5("");
|
|
1430
|
+
const [lastReceivedStatus, setLastReceivedStatus] = useState5(QueryAgentStatusResponse.AgentStatus.UNKNOWN);
|
|
1431
|
+
const [agentStatus, setAgentStatus] = useState5("getting");
|
|
1432
|
+
const client = useClient3();
|
|
1433
|
+
const agentHostingEnabled = Boolean(client.config.values.runtime?.client?.edgeFeatures?.agents);
|
|
1434
|
+
const handleStatus = (status) => {
|
|
1435
|
+
switch (status) {
|
|
1436
|
+
case QueryAgentStatusResponse.AgentStatus.ACTIVE:
|
|
1437
|
+
case QueryAgentStatusResponse.AgentStatus.INACTIVE:
|
|
1438
|
+
setAgentStatus("created");
|
|
1439
|
+
break;
|
|
1440
|
+
case QueryAgentStatusResponse.AgentStatus.NOT_FOUND:
|
|
1441
|
+
setAgentStatus("creatable");
|
|
1442
|
+
break;
|
|
1443
|
+
case QueryAgentStatusResponse.AgentStatus.UNKNOWN:
|
|
1444
|
+
setAgentStatus("getting");
|
|
1445
|
+
break;
|
|
1446
|
+
}
|
|
1447
|
+
};
|
|
1448
|
+
useEffect2(() => {
|
|
1449
|
+
const stream = client.services.services.EdgeAgentService?.queryAgentStatus();
|
|
1450
|
+
stream?.subscribe(({ status }) => {
|
|
1451
|
+
setLastReceivedStatus(status);
|
|
1452
|
+
handleStatus(status);
|
|
1453
|
+
});
|
|
1454
|
+
return () => {
|
|
1455
|
+
void stream?.close().catch(() => {
|
|
1456
|
+
});
|
|
1457
|
+
};
|
|
1458
|
+
}, []);
|
|
1459
|
+
const onAgentCreate = async () => {
|
|
1460
|
+
invariant(identity, "Identity not found", {
|
|
1461
|
+
F: __dxlog_file3,
|
|
1462
|
+
L: 56,
|
|
1463
|
+
S: void 0,
|
|
1464
|
+
A: [
|
|
1465
|
+
"identity",
|
|
1466
|
+
"'Identity not found'"
|
|
1467
|
+
]
|
|
1468
|
+
});
|
|
1469
|
+
const service = client.services.services.EdgeAgentService;
|
|
1470
|
+
if (!service) {
|
|
1471
|
+
setAgentStatus("error");
|
|
1472
|
+
setValidationMessage("Agent service not initialized.");
|
|
1473
|
+
return;
|
|
1474
|
+
}
|
|
1475
|
+
if (!agentHostingEnabled) {
|
|
1476
|
+
setAgentStatus("error");
|
|
1477
|
+
setValidationMessage("Edge agents are disabled in config.");
|
|
1478
|
+
return;
|
|
1479
|
+
}
|
|
1480
|
+
setAgentStatus("creating");
|
|
1481
|
+
setValidationMessage("");
|
|
1482
|
+
try {
|
|
1483
|
+
await service.createAgent();
|
|
1484
|
+
setAgentStatus("created");
|
|
1485
|
+
} catch (err) {
|
|
1486
|
+
setAgentStatus("error");
|
|
1487
|
+
setValidationMessage(`Error creating an agent: ${err.message}`);
|
|
1488
|
+
}
|
|
1489
|
+
};
|
|
1490
|
+
const onAgentDestroy = async () => {
|
|
1491
|
+
setValidationMessage("Agents are non-destructible.");
|
|
1492
|
+
};
|
|
1493
|
+
const onAgentRefresh = async () => {
|
|
1494
|
+
setValidationMessage("");
|
|
1495
|
+
handleStatus(lastReceivedStatus);
|
|
1496
|
+
};
|
|
1497
|
+
return {
|
|
1498
|
+
onAgentCreate,
|
|
1499
|
+
onAgentDestroy,
|
|
1500
|
+
onAgentRefresh,
|
|
1501
|
+
validationMessage,
|
|
1502
|
+
agentStatus,
|
|
1503
|
+
agentHostingEnabled
|
|
1504
|
+
};
|
|
1505
|
+
};
|
|
1506
|
+
|
|
1507
|
+
// packages/sdk/shell/src/panels/IdentityPanel/useKubeAgentHandlers.ts
|
|
1508
|
+
import { useCallback as useCallback4, useEffect as useEffect3, useState as useState6 } from "react";
|
|
1509
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
1510
|
+
import { log as log3 } from "@dxos/log";
|
|
1511
|
+
import { useClient as useClient4, useAgentHostingClient } from "@dxos/react-client";
|
|
1430
1512
|
import { Invitation as Invitation3, InvitationEncoder as InvitationEncoder2 } from "@dxos/react-client/invitations";
|
|
1431
|
-
var
|
|
1432
|
-
var
|
|
1513
|
+
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/IdentityPanel/useKubeAgentHandlers.ts";
|
|
1514
|
+
var useKubeAgentHandlers = ({ invitations, identity }) => {
|
|
1433
1515
|
const [validationMessage, setValidationMessage] = useState6("");
|
|
1434
1516
|
const [agentStatus, setAgentStatus] = useState6("getting");
|
|
1435
1517
|
const agentHostingProviderClient = useAgentHostingClient();
|
|
1436
|
-
const client =
|
|
1518
|
+
const client = useClient4();
|
|
1437
1519
|
const updateAgentStatus = async () => {
|
|
1438
1520
|
if (agentHostingProviderClient) {
|
|
1439
1521
|
setAgentStatus("getting");
|
|
@@ -1454,8 +1536,8 @@ var useAgentHandlers = ({ invitations, identity }) => {
|
|
|
1454
1536
|
}
|
|
1455
1537
|
};
|
|
1456
1538
|
const createAgent = async (invitationCode) => {
|
|
1457
|
-
|
|
1458
|
-
F:
|
|
1539
|
+
invariant2(identity, "Identity not found", {
|
|
1540
|
+
F: __dxlog_file4,
|
|
1459
1541
|
L: 50,
|
|
1460
1542
|
S: void 0,
|
|
1461
1543
|
A: [
|
|
@@ -1484,8 +1566,8 @@ var useAgentHandlers = ({ invitations, identity }) => {
|
|
|
1484
1566
|
}
|
|
1485
1567
|
};
|
|
1486
1568
|
const destroyAgent = async () => {
|
|
1487
|
-
|
|
1488
|
-
F:
|
|
1569
|
+
invariant2(identity, "Identity not found", {
|
|
1570
|
+
F: __dxlog_file4,
|
|
1489
1571
|
L: 73,
|
|
1490
1572
|
S: void 0,
|
|
1491
1573
|
A: [
|
|
@@ -1508,17 +1590,17 @@ var useAgentHandlers = ({ invitations, identity }) => {
|
|
|
1508
1590
|
setValidationMessage("No agent provider configured.");
|
|
1509
1591
|
}
|
|
1510
1592
|
};
|
|
1511
|
-
|
|
1593
|
+
useEffect3(() => {
|
|
1512
1594
|
void updateAgentStatus();
|
|
1513
1595
|
}, []);
|
|
1514
1596
|
const handleAgentCreate = useCallback4(async (invitation) => {
|
|
1515
1597
|
const invitationCode = InvitationEncoder2.encode(invitation);
|
|
1516
1598
|
if (invitation.state === Invitation3.State.CONNECTING) {
|
|
1517
|
-
|
|
1599
|
+
log3.info(JSON.stringify({
|
|
1518
1600
|
invitationCode,
|
|
1519
1601
|
authCode: invitation.authCode
|
|
1520
1602
|
}), void 0, {
|
|
1521
|
-
F:
|
|
1603
|
+
F: __dxlog_file4,
|
|
1522
1604
|
L: 97,
|
|
1523
1605
|
S: void 0,
|
|
1524
1606
|
C: (f, a) => f(...a)
|
|
@@ -1549,13 +1631,23 @@ var useAgentHandlers = ({ invitations, identity }) => {
|
|
|
1549
1631
|
};
|
|
1550
1632
|
};
|
|
1551
1633
|
|
|
1634
|
+
// packages/sdk/shell/src/panels/IdentityPanel/useAgentHandlers.ts
|
|
1635
|
+
var useAgentHandlers = (params) => {
|
|
1636
|
+
const client = useClient5();
|
|
1637
|
+
if (client.config.values?.runtime?.client?.edgeFeatures?.agents) {
|
|
1638
|
+
return useEdgeAgentHandlers(params);
|
|
1639
|
+
} else {
|
|
1640
|
+
return useKubeAgentHandlers(params);
|
|
1641
|
+
}
|
|
1642
|
+
};
|
|
1643
|
+
|
|
1552
1644
|
// packages/sdk/shell/src/steps/InvitationManager.tsx
|
|
1553
1645
|
import { Check as Check4, X as X3 } from "@phosphor-icons/react";
|
|
1554
|
-
import
|
|
1646
|
+
import React26, { useMemo as useMemo2 } from "react";
|
|
1555
1647
|
import { QR } from "react-qr-rounded";
|
|
1556
|
-
import { useId as useId5, useTranslation as
|
|
1648
|
+
import { useId as useId5, useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1557
1649
|
import { descriptionText as descriptionText8, getSize as getSize11, mx as mx20 } from "@dxos/react-ui-theme";
|
|
1558
|
-
import { hexToEmoji as
|
|
1650
|
+
import { hexToEmoji as hexToEmoji2 } from "@dxos/util";
|
|
1559
1651
|
|
|
1560
1652
|
// packages/sdk/shell/src/util/invitationStatusValue.ts
|
|
1561
1653
|
import { Invitation as Invitation4 } from "@dxos/react-client/invitations";
|
|
@@ -1600,17 +1692,17 @@ var invitationStatusValue = /* @__PURE__ */ new Map([
|
|
|
1600
1692
|
|
|
1601
1693
|
// packages/sdk/shell/src/steps/InvitationManager.tsx
|
|
1602
1694
|
var InvitationManagerView = ({ children, ...props }) => {
|
|
1603
|
-
return /* @__PURE__ */
|
|
1695
|
+
return /* @__PURE__ */ React26.createElement(Viewport.View, {
|
|
1604
1696
|
...props,
|
|
1605
1697
|
classNames: "grow flex flex-col justify-around items-center"
|
|
1606
1698
|
}, children);
|
|
1607
1699
|
};
|
|
1608
1700
|
var InvitationManager = ({ invitationUrl, active, send, status, multiUse, authCode, id = "0" }) => {
|
|
1609
|
-
const { t } =
|
|
1701
|
+
const { t } = useTranslation11("os");
|
|
1610
1702
|
const qrLabel = useId5("invitation-manager__qr-code");
|
|
1611
1703
|
const statusValue = multiUse ? 0 : invitationStatusValue.get(status) ?? 0;
|
|
1612
1704
|
const showAuthCode = statusValue === 3;
|
|
1613
|
-
const emoji =
|
|
1705
|
+
const emoji = hexToEmoji2(id);
|
|
1614
1706
|
const activeView = useMemo2(() => {
|
|
1615
1707
|
if (multiUse) {
|
|
1616
1708
|
return "showing qr";
|
|
@@ -1627,18 +1719,18 @@ var InvitationManager = ({ invitationUrl, active, send, status, multiUse, authCo
|
|
|
1627
1719
|
}, [
|
|
1628
1720
|
statusValue
|
|
1629
1721
|
]);
|
|
1630
|
-
return /* @__PURE__ */
|
|
1722
|
+
return /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(Viewport.Root, {
|
|
1631
1723
|
activeView,
|
|
1632
1724
|
classNames: "grow plb-1"
|
|
1633
|
-
}, /* @__PURE__ */
|
|
1725
|
+
}, /* @__PURE__ */ React26.createElement(Viewport.Views, null, /* @__PURE__ */ React26.createElement(InvitationManagerView, {
|
|
1634
1726
|
id: "showing qr",
|
|
1635
1727
|
emoji
|
|
1636
|
-
}, /* @__PURE__ */
|
|
1728
|
+
}, /* @__PURE__ */ React26.createElement("p", {
|
|
1637
1729
|
className: "text-sm mlb-1 font-normal text-center"
|
|
1638
|
-
}, t(multiUse ? "invite many qr label" : "invite one qr label")), /* @__PURE__ */
|
|
1730
|
+
}, t(multiUse ? "invite many qr label" : "invite one qr label")), /* @__PURE__ */ React26.createElement("div", {
|
|
1639
1731
|
role: "none",
|
|
1640
1732
|
className: mx20(descriptionText8, "is-full max-is-[14rem] relative")
|
|
1641
|
-
}, /* @__PURE__ */
|
|
1733
|
+
}, /* @__PURE__ */ React26.createElement(QR, {
|
|
1642
1734
|
rounding: 100,
|
|
1643
1735
|
backgroundColor: "transparent",
|
|
1644
1736
|
color: "currentColor",
|
|
@@ -1646,31 +1738,31 @@ var InvitationManager = ({ invitationUrl, active, send, status, multiUse, authCo
|
|
|
1646
1738
|
"aria-labelledby": qrLabel,
|
|
1647
1739
|
errorCorrectionLevel: "Q",
|
|
1648
1740
|
cutout: true
|
|
1649
|
-
}, invitationUrl ?? "never"), /* @__PURE__ */
|
|
1741
|
+
}, invitationUrl ?? "never"), /* @__PURE__ */ React26.createElement(Centered, null, /* @__PURE__ */ React26.createElement(Emoji, {
|
|
1650
1742
|
text: emoji
|
|
1651
|
-
}))), /* @__PURE__ */
|
|
1743
|
+
}))), /* @__PURE__ */ React26.createElement("span", {
|
|
1652
1744
|
id: qrLabel,
|
|
1653
1745
|
className: "sr-only"
|
|
1654
|
-
}, t("qr label")), /* @__PURE__ */
|
|
1746
|
+
}, t("qr label")), /* @__PURE__ */ React26.createElement(CopyButton, {
|
|
1655
1747
|
variant: "ghost",
|
|
1656
1748
|
value: invitationUrl ?? "never"
|
|
1657
|
-
})), /* @__PURE__ */
|
|
1749
|
+
})), /* @__PURE__ */ React26.createElement(InvitationManagerView, {
|
|
1658
1750
|
id: "showing auth code"
|
|
1659
|
-
}, /* @__PURE__ */
|
|
1751
|
+
}, /* @__PURE__ */ React26.createElement(Label, null, t("auth code message")), /* @__PURE__ */ React26.createElement(AuthCode, {
|
|
1660
1752
|
code: authCode,
|
|
1661
1753
|
large: true,
|
|
1662
1754
|
classNames: "text-black dark:text-white"
|
|
1663
|
-
}), /* @__PURE__ */
|
|
1755
|
+
}), /* @__PURE__ */ React26.createElement(Label, null, t("auth other device emoji message")), emoji && /* @__PURE__ */ React26.createElement(Emoji, {
|
|
1664
1756
|
text: emoji
|
|
1665
|
-
})), /* @__PURE__ */
|
|
1757
|
+
})), /* @__PURE__ */ React26.createElement(InvitationManagerView, {
|
|
1666
1758
|
id: "showing final"
|
|
1667
|
-
}, statusValue > 0 ? /* @__PURE__ */
|
|
1759
|
+
}, statusValue > 0 ? /* @__PURE__ */ React26.createElement(Check4, {
|
|
1668
1760
|
className: mx20("m-1.5", getSize11(6))
|
|
1669
|
-
}) : /* @__PURE__ */
|
|
1761
|
+
}) : /* @__PURE__ */ React26.createElement(X3, {
|
|
1670
1762
|
className: mx20("m-1.5", getSize11(6))
|
|
1671
|
-
})))), /* @__PURE__ */
|
|
1763
|
+
})))), /* @__PURE__ */ React26.createElement(Actions, {
|
|
1672
1764
|
classNames: "mbs-4"
|
|
1673
|
-
}, /* @__PURE__ */
|
|
1765
|
+
}, /* @__PURE__ */ React26.createElement(Action, {
|
|
1674
1766
|
disabled: !active,
|
|
1675
1767
|
onClick: () => send?.({
|
|
1676
1768
|
type: "deselectInvitation"
|
|
@@ -1680,20 +1772,20 @@ var InvitationManager = ({ invitationUrl, active, send, status, multiUse, authCo
|
|
|
1680
1772
|
|
|
1681
1773
|
// packages/sdk/shell/src/steps/ConfirmReset.tsx
|
|
1682
1774
|
import { Warning } from "@phosphor-icons/react";
|
|
1683
|
-
import
|
|
1684
|
-
import { log as
|
|
1685
|
-
import { Message, useTranslation as
|
|
1775
|
+
import React27, { useState as useState7 } from "react";
|
|
1776
|
+
import { log as log4 } from "@dxos/log";
|
|
1777
|
+
import { Message, useTranslation as useTranslation12 } from "@dxos/react-ui";
|
|
1686
1778
|
import { getSize as getSize12, mx as mx21 } from "@dxos/react-ui-theme";
|
|
1687
|
-
var
|
|
1779
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/steps/ConfirmReset.tsx";
|
|
1688
1780
|
var ConfirmReset = ({ active, onCancel, onConfirm, mode }) => {
|
|
1689
|
-
const { t } =
|
|
1781
|
+
const { t } = useTranslation12("os");
|
|
1690
1782
|
const [validationMessage, setValidationMessage] = useState7("");
|
|
1691
1783
|
const [pending, setPending] = useState7(false);
|
|
1692
1784
|
const processReset = async () => {
|
|
1693
1785
|
setPending(true);
|
|
1694
1786
|
return onConfirm?.().then(() => setPending(false), (error) => {
|
|
1695
|
-
|
|
1696
|
-
F:
|
|
1787
|
+
log4.catch(error, void 0, {
|
|
1788
|
+
F: __dxlog_file5,
|
|
1697
1789
|
L: 38,
|
|
1698
1790
|
S: void 0,
|
|
1699
1791
|
C: (f, a) => f(...a)
|
|
@@ -1702,7 +1794,7 @@ var ConfirmReset = ({ active, onCancel, onConfirm, mode }) => {
|
|
|
1702
1794
|
setPending(false);
|
|
1703
1795
|
});
|
|
1704
1796
|
};
|
|
1705
|
-
return /* @__PURE__ */
|
|
1797
|
+
return /* @__PURE__ */ React27.createElement(ConfirmResetImpl, {
|
|
1706
1798
|
disabled: !active,
|
|
1707
1799
|
pending,
|
|
1708
1800
|
validationMessage,
|
|
@@ -1712,20 +1804,20 @@ var ConfirmReset = ({ active, onCancel, onConfirm, mode }) => {
|
|
|
1712
1804
|
});
|
|
1713
1805
|
};
|
|
1714
1806
|
var ConfirmResetImpl = ({ disabled, pending, validationMessage, onConfirm, onCancel, mode }) => {
|
|
1715
|
-
const { t } =
|
|
1807
|
+
const { t } = useTranslation12("os");
|
|
1716
1808
|
const confirmationValue = t("confirmation value");
|
|
1717
1809
|
const [inputValue, setInputValue] = useState7("");
|
|
1718
1810
|
const testIdAffix = mode === "join new identity" ? "join-new-identity" : "reset-storage";
|
|
1719
|
-
return /* @__PURE__ */
|
|
1811
|
+
return /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement("div", {
|
|
1720
1812
|
role: "none",
|
|
1721
1813
|
className: "grow flex flex-col gap-2 justify-center"
|
|
1722
|
-
}, /* @__PURE__ */
|
|
1814
|
+
}, /* @__PURE__ */ React27.createElement(Message.Root, {
|
|
1723
1815
|
valence: "error"
|
|
1724
|
-
}, /* @__PURE__ */
|
|
1816
|
+
}, /* @__PURE__ */ React27.createElement(Message.Title, null, /* @__PURE__ */ React27.createElement(Warning, {
|
|
1725
1817
|
className: mx21(getSize12(6), "inline mie-2")
|
|
1726
|
-
}), t("sign out chooser title")), /* @__PURE__ */
|
|
1818
|
+
}), t("sign out chooser title")), /* @__PURE__ */ React27.createElement(Message.Body, null, t("sign out chooser message"))), /* @__PURE__ */ React27.createElement(Input, {
|
|
1727
1819
|
validationMessage,
|
|
1728
|
-
label: /* @__PURE__ */
|
|
1820
|
+
label: /* @__PURE__ */ React27.createElement(StepHeading, {
|
|
1729
1821
|
className: "text-start mlb-2"
|
|
1730
1822
|
}, t(mode === "join new identity" ? "join new identity input label" : "reset storage input label", {
|
|
1731
1823
|
confirmationValue
|
|
@@ -1736,11 +1828,11 @@ var ConfirmResetImpl = ({ disabled, pending, validationMessage, onConfirm, onCan
|
|
|
1736
1828
|
confirmationValue
|
|
1737
1829
|
}),
|
|
1738
1830
|
onChange: ({ target: { value } }) => setInputValue(value)
|
|
1739
|
-
})), /* @__PURE__ */
|
|
1831
|
+
})), /* @__PURE__ */ React27.createElement(Actions, null, onCancel && /* @__PURE__ */ React27.createElement(Action, {
|
|
1740
1832
|
disabled,
|
|
1741
1833
|
onClick: onCancel,
|
|
1742
1834
|
"data-testid": `${testIdAffix}.reset-identity-cancel`
|
|
1743
|
-
}, t("cancel label")), onConfirm && /* @__PURE__ */
|
|
1835
|
+
}, t("cancel label")), onConfirm && /* @__PURE__ */ React27.createElement(Action, {
|
|
1744
1836
|
variant: "destructive",
|
|
1745
1837
|
disabled: disabled || pending || inputValue !== confirmationValue,
|
|
1746
1838
|
onClick: onConfirm,
|
|
@@ -1749,13 +1841,13 @@ var ConfirmResetImpl = ({ disabled, pending, validationMessage, onConfirm, onCan
|
|
|
1749
1841
|
};
|
|
1750
1842
|
|
|
1751
1843
|
// packages/sdk/shell/src/panels/IdentityPanel/IdentityPanel.tsx
|
|
1752
|
-
var
|
|
1844
|
+
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/IdentityPanel/IdentityPanel.tsx";
|
|
1753
1845
|
var viewStyles = "pbs-1 pbe-3 pli-3";
|
|
1754
|
-
var getHueValue = (identity) => identity?.profile?.data?.hue ||
|
|
1755
|
-
var getEmojiValue = (identity) => identity?.profile?.data?.emoji ||
|
|
1846
|
+
var getHueValue = (identity) => identity?.profile?.data?.hue || hexToHue(identity?.identityKey.toHex() ?? "0");
|
|
1847
|
+
var getEmojiValue = (identity) => identity?.profile?.data?.emoji || hexToEmoji3(identity?.identityKey.toHex() ?? "0");
|
|
1756
1848
|
var IdentityHeading = ({ titleId, title, identity, onDone, onUpdateProfile, connectionState, onChangeConnectionState }) => {
|
|
1757
1849
|
const fallbackValue = keyToFallback3(identity.identityKey);
|
|
1758
|
-
const { t } =
|
|
1850
|
+
const { t } = useTranslation13("os");
|
|
1759
1851
|
const [displayName, setDisplayName] = useState8(identity.profile?.displayName ?? "");
|
|
1760
1852
|
const [emoji, setEmojiDirectly] = useState8(getEmojiValue(identity));
|
|
1761
1853
|
const [hue, setHueDirectly] = useState8(getHueValue(identity));
|
|
@@ -1784,29 +1876,29 @@ var IdentityHeading = ({ titleId, title, identity, onDone, onUpdateProfile, conn
|
|
|
1784
1876
|
};
|
|
1785
1877
|
const isConnected = connectionState === ConnectionState2.ONLINE;
|
|
1786
1878
|
const debug = true;
|
|
1787
|
-
return /* @__PURE__ */
|
|
1879
|
+
return /* @__PURE__ */ React28.createElement(Heading, {
|
|
1788
1880
|
titleId,
|
|
1789
1881
|
title,
|
|
1790
|
-
corner: /* @__PURE__ */
|
|
1882
|
+
corner: /* @__PURE__ */ React28.createElement(CloseButton, {
|
|
1791
1883
|
onDone
|
|
1792
1884
|
})
|
|
1793
|
-
}, /* @__PURE__ */
|
|
1885
|
+
}, /* @__PURE__ */ React28.createElement(Avatar6.Root, {
|
|
1794
1886
|
size: 16,
|
|
1795
1887
|
variant: "circle",
|
|
1796
1888
|
status: isConnected ? "active" : "error",
|
|
1797
1889
|
hue: hue || fallbackValue.hue
|
|
1798
|
-
}, /* @__PURE__ */
|
|
1890
|
+
}, /* @__PURE__ */ React28.createElement(Toolbar3.Root, {
|
|
1799
1891
|
classNames: "flex justify-center"
|
|
1800
|
-
}, /* @__PURE__ */
|
|
1892
|
+
}, /* @__PURE__ */ React28.createElement(Avatar6.Frame, {
|
|
1801
1893
|
classNames: "relative z-[2] -mli-4 chromatic-ignore"
|
|
1802
|
-
}, /* @__PURE__ */
|
|
1894
|
+
}, /* @__PURE__ */ React28.createElement(Avatar6.Fallback, {
|
|
1803
1895
|
text: emoji || fallbackValue.emoji
|
|
1804
|
-
}))), /* @__PURE__ */
|
|
1896
|
+
}))), /* @__PURE__ */ React28.createElement(Avatar6.Label, {
|
|
1805
1897
|
classNames: "sr-only",
|
|
1806
1898
|
"data-testid": "identityHeading.displayName"
|
|
1807
|
-
}, identity.profile?.displayName ?? generateName3(identity.identityKey.toHex())), /* @__PURE__ */
|
|
1899
|
+
}, identity.profile?.displayName ?? generateName3(identity.identityKey.toHex())), /* @__PURE__ */ React28.createElement(Input2.Root, null, /* @__PURE__ */ React28.createElement(Input2.Label, {
|
|
1808
1900
|
srOnly: true
|
|
1809
|
-
}, t("display name input label")), /* @__PURE__ */
|
|
1901
|
+
}, t("display name input label")), /* @__PURE__ */ React28.createElement(Input2.TextInput, {
|
|
1810
1902
|
variant: "subdued",
|
|
1811
1903
|
"data-testid": "display-name-input",
|
|
1812
1904
|
placeholder: t("display name input placeholder"),
|
|
@@ -1817,51 +1909,51 @@ var IdentityHeading = ({ titleId, title, identity, onDone, onUpdateProfile, conn
|
|
|
1817
1909
|
...identity.profile,
|
|
1818
1910
|
displayName: value
|
|
1819
1911
|
})
|
|
1820
|
-
})), /* @__PURE__ */
|
|
1912
|
+
})), /* @__PURE__ */ React28.createElement(Toolbar3.Root, {
|
|
1821
1913
|
classNames: "flex justify-center items-center gap-1 pt-3"
|
|
1822
|
-
}, /* @__PURE__ */
|
|
1914
|
+
}, /* @__PURE__ */ React28.createElement(EmojiPickerToolbarButton, {
|
|
1823
1915
|
emoji,
|
|
1824
1916
|
onChangeEmoji: setEmoji,
|
|
1825
1917
|
classNames: "bs-[--rail-action]"
|
|
1826
|
-
}), /* @__PURE__ */
|
|
1918
|
+
}), /* @__PURE__ */ React28.createElement(HuePickerToolbarButton, {
|
|
1827
1919
|
hue,
|
|
1828
1920
|
onChangeHue: setHue,
|
|
1829
1921
|
classNames: "bs-[--rail-action]"
|
|
1830
|
-
}), debug && /* @__PURE__ */
|
|
1922
|
+
}), debug && /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(Tooltip7.Root, null, /* @__PURE__ */ React28.createElement(Tooltip7.Trigger, {
|
|
1831
1923
|
asChild: true
|
|
1832
|
-
}, /* @__PURE__ */
|
|
1924
|
+
}, /* @__PURE__ */ React28.createElement(Toolbar3.Button, {
|
|
1833
1925
|
classNames: "bs-[--rail-action]",
|
|
1834
1926
|
"data-testid": "update-profile-form-copy-key",
|
|
1835
1927
|
onClick: () => setTextValue(identityHex)
|
|
1836
|
-
}, /* @__PURE__ */
|
|
1928
|
+
}, /* @__PURE__ */ React28.createElement("span", {
|
|
1837
1929
|
className: "sr-only"
|
|
1838
|
-
}, t(copied ? "copy success label" : "copy self public key label")), /* @__PURE__ */
|
|
1930
|
+
}, t(copied ? "copy success label" : "copy self public key label")), /* @__PURE__ */ React28.createElement(Key, {
|
|
1839
1931
|
className: getSize13(5)
|
|
1840
|
-
}))), /* @__PURE__ */
|
|
1932
|
+
}))), /* @__PURE__ */ React28.createElement(Tooltip7.Portal, null, /* @__PURE__ */ React28.createElement(Tooltip7.Content, {
|
|
1841
1933
|
side: "bottom",
|
|
1842
1934
|
classNames: "z-50"
|
|
1843
|
-
}, t(copied ? "copy success label" : "copy self public key label"), /* @__PURE__ */
|
|
1935
|
+
}, t(copied ? "copy success label" : "copy self public key label"), /* @__PURE__ */ React28.createElement(Tooltip7.Arrow, null))), /* @__PURE__ */ React28.createElement(Tooltip7.Root, null, /* @__PURE__ */ React28.createElement(Tooltip7.Trigger, {
|
|
1844
1936
|
asChild: true
|
|
1845
|
-
}, /* @__PURE__ */
|
|
1937
|
+
}, /* @__PURE__ */ React28.createElement(Toolbar3.Button, {
|
|
1846
1938
|
classNames: [
|
|
1847
1939
|
"bs-[--rail-action]",
|
|
1848
1940
|
!isConnected && "text-error-500"
|
|
1849
1941
|
],
|
|
1850
1942
|
onClick: () => onChangeConnectionState?.(isConnected ? ConnectionState2.OFFLINE : ConnectionState2.ONLINE)
|
|
1851
|
-
}, /* @__PURE__ */
|
|
1943
|
+
}, /* @__PURE__ */ React28.createElement("span", {
|
|
1852
1944
|
className: "sr-only"
|
|
1853
|
-
}, t(isConnected ? "disconnect label" : "connect label")), isConnected ? /* @__PURE__ */
|
|
1945
|
+
}, t(isConnected ? "disconnect label" : "connect label")), isConnected ? /* @__PURE__ */ React28.createElement(PlugsConnected, {
|
|
1854
1946
|
className: getSize13(5)
|
|
1855
|
-
}) : /* @__PURE__ */
|
|
1947
|
+
}) : /* @__PURE__ */ React28.createElement(Plugs, {
|
|
1856
1948
|
className: getSize13(5)
|
|
1857
|
-
}))), /* @__PURE__ */
|
|
1949
|
+
}))), /* @__PURE__ */ React28.createElement(Tooltip7.Portal, null, /* @__PURE__ */ React28.createElement(Tooltip7.Content, {
|
|
1858
1950
|
side: "bottom",
|
|
1859
1951
|
classNames: "z-50"
|
|
1860
|
-
}, t(isConnected ? "disconnect label" : "connect label"), /* @__PURE__ */
|
|
1952
|
+
}, t(isConnected ? "disconnect label" : "connect label"), /* @__PURE__ */ React28.createElement(Tooltip7.Arrow, null)))))))));
|
|
1861
1953
|
};
|
|
1862
1954
|
var IdentityPanelImpl = (props) => {
|
|
1863
1955
|
const { identity, titleId, activeView, onUpdateProfile, onResetStorage, onJoinNewIdentity, IdentityActionChooser: IdentityActionChooserComponent = IdentityActionChooser, InvitationManager: InvitationManagerComponent = InvitationManager, connectionState, onChangeConnectionState, onDone, ...rest } = props;
|
|
1864
|
-
const { t } =
|
|
1956
|
+
const { t } = useTranslation13("os");
|
|
1865
1957
|
const title = useMemo3(() => {
|
|
1866
1958
|
switch (activeView) {
|
|
1867
1959
|
case "device invitation manager":
|
|
@@ -1874,9 +1966,7 @@ var IdentityPanelImpl = (props) => {
|
|
|
1874
1966
|
t
|
|
1875
1967
|
]);
|
|
1876
1968
|
const onCancelReset = () => rest.send?.("unchooseAction");
|
|
1877
|
-
return /* @__PURE__ */
|
|
1878
|
-
density: "fine"
|
|
1879
|
-
}, /* @__PURE__ */ React29.createElement(IdentityHeading, {
|
|
1969
|
+
return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(IdentityHeading, {
|
|
1880
1970
|
identity,
|
|
1881
1971
|
titleId,
|
|
1882
1972
|
title,
|
|
@@ -1884,35 +1974,35 @@ var IdentityPanelImpl = (props) => {
|
|
|
1884
1974
|
onUpdateProfile,
|
|
1885
1975
|
connectionState,
|
|
1886
1976
|
onChangeConnectionState
|
|
1887
|
-
}), /* @__PURE__ */
|
|
1977
|
+
}), /* @__PURE__ */ React28.createElement(Viewport.Root, {
|
|
1888
1978
|
activeView
|
|
1889
|
-
}, /* @__PURE__ */
|
|
1979
|
+
}, /* @__PURE__ */ React28.createElement(Viewport.Views, null, /* @__PURE__ */ React28.createElement(Viewport.View, {
|
|
1890
1980
|
id: "identity action chooser",
|
|
1891
1981
|
classNames: viewStyles
|
|
1892
|
-
}, /* @__PURE__ */
|
|
1982
|
+
}, /* @__PURE__ */ React28.createElement(IdentityActionChooserComponent, {
|
|
1893
1983
|
active: activeView === "identity action chooser",
|
|
1894
1984
|
...rest,
|
|
1895
1985
|
connectionState
|
|
1896
|
-
})), /* @__PURE__ */
|
|
1986
|
+
})), /* @__PURE__ */ React28.createElement(Viewport.View, {
|
|
1897
1987
|
id: "device invitation manager",
|
|
1898
1988
|
classNames: viewStyles
|
|
1899
|
-
}, /* @__PURE__ */
|
|
1989
|
+
}, /* @__PURE__ */ React28.createElement(InvitationManagerComponent, {
|
|
1900
1990
|
active: activeView === "device invitation manager",
|
|
1901
1991
|
...rest,
|
|
1902
1992
|
invitationUrl: rest.createInvitationUrl(rest.invitationCode)
|
|
1903
|
-
})), /* @__PURE__ */
|
|
1993
|
+
})), /* @__PURE__ */ React28.createElement(Viewport.View, {
|
|
1904
1994
|
classNames: viewStyles,
|
|
1905
1995
|
id: "confirm join new identity"
|
|
1906
|
-
}, /* @__PURE__ */
|
|
1996
|
+
}, /* @__PURE__ */ React28.createElement(ConfirmReset, {
|
|
1907
1997
|
active: activeView === "confirm join new identity",
|
|
1908
1998
|
...rest,
|
|
1909
1999
|
mode: "join new identity",
|
|
1910
2000
|
onConfirm: onJoinNewIdentity,
|
|
1911
2001
|
onCancel: onCancelReset
|
|
1912
|
-
})), /* @__PURE__ */
|
|
2002
|
+
})), /* @__PURE__ */ React28.createElement(Viewport.View, {
|
|
1913
2003
|
classNames: viewStyles,
|
|
1914
2004
|
id: "confirm reset storage"
|
|
1915
|
-
}, /* @__PURE__ */
|
|
2005
|
+
}, /* @__PURE__ */ React28.createElement(ConfirmReset, {
|
|
1916
2006
|
active: activeView === "confirm reset storage",
|
|
1917
2007
|
...rest,
|
|
1918
2008
|
mode: "reset storage",
|
|
@@ -1922,14 +2012,14 @@ var IdentityPanelImpl = (props) => {
|
|
|
1922
2012
|
};
|
|
1923
2013
|
var IdentityPanelWithInvitationImpl = ({ invitation, ...props }) => {
|
|
1924
2014
|
const invitationStatus = useInvitationStatus2(invitation);
|
|
1925
|
-
return /* @__PURE__ */
|
|
2015
|
+
return /* @__PURE__ */ React28.createElement(IdentityPanelImpl, {
|
|
1926
2016
|
...props,
|
|
1927
2017
|
...invitationStatus
|
|
1928
2018
|
});
|
|
1929
2019
|
};
|
|
1930
2020
|
var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => code, initialDisposition = "default", ...props }) => {
|
|
1931
2021
|
const titleId = useId6("identityPanel__heading", propsTitleId);
|
|
1932
|
-
const client =
|
|
2022
|
+
const client = useClient6();
|
|
1933
2023
|
const devices = useDevices();
|
|
1934
2024
|
const identity = useIdentity();
|
|
1935
2025
|
const invitations = useHaloInvitations2();
|
|
@@ -1938,8 +2028,8 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1938
2028
|
invitations
|
|
1939
2029
|
});
|
|
1940
2030
|
if (!identity) {
|
|
1941
|
-
|
|
1942
|
-
F:
|
|
2031
|
+
log5.error("IdentityPanel rendered with no active identity.", void 0, {
|
|
2032
|
+
F: __dxlog_file6,
|
|
1943
2033
|
L: 246,
|
|
1944
2034
|
S: void 0,
|
|
1945
2035
|
C: (f, a) => f(...a)
|
|
@@ -1953,10 +2043,10 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1953
2043
|
});
|
|
1954
2044
|
const { swarm: connectionState } = useNetworkStatus();
|
|
1955
2045
|
const handleChangeConnectionState = async (nextState) => client?.mesh.updateConfig(nextState);
|
|
1956
|
-
|
|
2046
|
+
useEffect4(() => {
|
|
1957
2047
|
const subscription = identityService.subscribe((state) => {
|
|
1958
|
-
|
|
1959
|
-
F:
|
|
2048
|
+
log5("[state]", state, {
|
|
2049
|
+
F: __dxlog_file6,
|
|
1960
2050
|
L: 259,
|
|
1961
2051
|
S: void 0,
|
|
1962
2052
|
C: (f, a) => f(...a)
|
|
@@ -2001,40 +2091,40 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
2001
2091
|
onChangeConnectionState: handleChangeConnectionState,
|
|
2002
2092
|
...agentProps
|
|
2003
2093
|
};
|
|
2004
|
-
return identityState.context.invitation ? /* @__PURE__ */
|
|
2094
|
+
return identityState.context.invitation ? /* @__PURE__ */ React28.createElement(IdentityPanelWithInvitationImpl, {
|
|
2005
2095
|
...implProps,
|
|
2006
2096
|
invitation: identityState.context.invitation
|
|
2007
|
-
}) : /* @__PURE__ */
|
|
2097
|
+
}) : /* @__PURE__ */ React28.createElement(IdentityPanelImpl, implProps);
|
|
2008
2098
|
};
|
|
2009
2099
|
|
|
2010
2100
|
// packages/sdk/shell/src/panels/JoinPanel/JoinPanel.tsx
|
|
2011
|
-
import
|
|
2012
|
-
import { log as
|
|
2013
|
-
import { useClient as
|
|
2101
|
+
import React36, { useCallback as useCallback6, useEffect as useEffect6, useMemo as useMemo4 } from "react";
|
|
2102
|
+
import { log as log9 } from "@dxos/log";
|
|
2103
|
+
import { useClient as useClient8, useMulticastObservable } from "@dxos/react-client";
|
|
2014
2104
|
import { useIdentity as useIdentity2 } from "@dxos/react-client/halo";
|
|
2015
|
-
import {
|
|
2105
|
+
import { useId as useId8, useThemeContext as useThemeContext5 } from "@dxos/react-ui";
|
|
2016
2106
|
|
|
2017
2107
|
// packages/sdk/shell/src/panels/JoinPanel/JoinHeading.tsx
|
|
2018
2108
|
import { X as X4 } from "@phosphor-icons/react";
|
|
2019
|
-
import
|
|
2020
|
-
import { Button as Button10, useTranslation as
|
|
2109
|
+
import React29, { cloneElement, forwardRef as forwardRef9 } from "react";
|
|
2110
|
+
import { Button as Button10, useTranslation as useTranslation14 } from "@dxos/react-ui";
|
|
2021
2111
|
import { descriptionText as descriptionText9, getSize as getSize14, mx as mx22 } from "@dxos/react-ui-theme";
|
|
2022
2112
|
var JoinHeading = /* @__PURE__ */ forwardRef9(({ mode, titleId, exitActionParent, onExit }, forwardedRef) => {
|
|
2023
|
-
const { t } =
|
|
2024
|
-
const exitButton = /* @__PURE__ */
|
|
2113
|
+
const { t } = useTranslation14("os");
|
|
2114
|
+
const exitButton = /* @__PURE__ */ React29.createElement(Button10, {
|
|
2025
2115
|
variant: "ghost",
|
|
2026
2116
|
...onExit && {
|
|
2027
2117
|
onClick: onExit
|
|
2028
2118
|
},
|
|
2029
2119
|
classNames: mx22(descriptionText9, "plb-0 pli-2 absolute block-start-0 inline-end-0 z-[1]"),
|
|
2030
2120
|
"data-testid": "join-exit"
|
|
2031
|
-
}, /* @__PURE__ */
|
|
2121
|
+
}, /* @__PURE__ */ React29.createElement(X4, {
|
|
2032
2122
|
weight: "bold",
|
|
2033
2123
|
className: getSize14(4)
|
|
2034
|
-
}), /* @__PURE__ */
|
|
2124
|
+
}), /* @__PURE__ */ React29.createElement("span", {
|
|
2035
2125
|
className: "sr-only"
|
|
2036
2126
|
}, t("exit label")));
|
|
2037
|
-
return /* @__PURE__ */
|
|
2127
|
+
return /* @__PURE__ */ React29.createElement(Heading, {
|
|
2038
2128
|
ref: forwardedRef,
|
|
2039
2129
|
titleId,
|
|
2040
2130
|
title: t(mode === "halo-only" ? "selecting identity heading" : "joining space heading"),
|
|
@@ -2051,13 +2141,13 @@ var JoinHeading = /* @__PURE__ */ forwardRef9(({ mode, titleId, exitActionParent
|
|
|
2051
2141
|
import { useMachine as useMachine2 } from "@xstate/react";
|
|
2052
2142
|
import { useCallback as useCallback5 } from "react";
|
|
2053
2143
|
import { assign as assign2, createMachine as createMachine2 } from "xstate";
|
|
2054
|
-
import { log as
|
|
2144
|
+
import { log as log6 } from "@dxos/log";
|
|
2055
2145
|
import { AlreadyJoinedError } from "@dxos/react-client";
|
|
2056
2146
|
import { Invitation as Invitation5, InvitationEncoder as InvitationEncoder3 } from "@dxos/react-client/invitations";
|
|
2057
|
-
var
|
|
2147
|
+
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/joinMachine.ts";
|
|
2058
2148
|
var getInvitationSubscribable = (Kind, invitation) => {
|
|
2059
|
-
|
|
2060
|
-
F:
|
|
2149
|
+
log6("[subscribing to invitation]", invitation, {
|
|
2150
|
+
F: __dxlog_file7,
|
|
2061
2151
|
L: 90,
|
|
2062
2152
|
S: void 0,
|
|
2063
2153
|
C: (f, a) => f(...a)
|
|
@@ -2066,11 +2156,11 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2066
2156
|
subscribe: (next, onError, complete) => invitation.subscribe((invitation2) => {
|
|
2067
2157
|
switch (invitation2.state) {
|
|
2068
2158
|
case Invitation5.State.CONNECTING: {
|
|
2069
|
-
|
|
2159
|
+
log6("[invitation connecting]", {
|
|
2070
2160
|
Kind,
|
|
2071
2161
|
invitation: invitation2
|
|
2072
2162
|
}, {
|
|
2073
|
-
F:
|
|
2163
|
+
F: __dxlog_file7,
|
|
2074
2164
|
L: 101,
|
|
2075
2165
|
S: void 0,
|
|
2076
2166
|
C: (f, a) => f(...a)
|
|
@@ -2081,11 +2171,11 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2081
2171
|
});
|
|
2082
2172
|
}
|
|
2083
2173
|
case Invitation5.State.CONNECTED: {
|
|
2084
|
-
|
|
2174
|
+
log6("[invitation connected]", {
|
|
2085
2175
|
Kind,
|
|
2086
2176
|
invitation: invitation2
|
|
2087
2177
|
}, {
|
|
2088
|
-
F:
|
|
2178
|
+
F: __dxlog_file7,
|
|
2089
2179
|
L: 106,
|
|
2090
2180
|
S: void 0,
|
|
2091
2181
|
C: (f, a) => f(...a)
|
|
@@ -2096,11 +2186,11 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2096
2186
|
});
|
|
2097
2187
|
}
|
|
2098
2188
|
case Invitation5.State.READY_FOR_AUTHENTICATION: {
|
|
2099
|
-
|
|
2189
|
+
log6("[invitation ready for authentication]", {
|
|
2100
2190
|
Kind,
|
|
2101
2191
|
invitation: invitation2
|
|
2102
2192
|
}, {
|
|
2103
|
-
F:
|
|
2193
|
+
F: __dxlog_file7,
|
|
2104
2194
|
L: 111,
|
|
2105
2195
|
S: void 0,
|
|
2106
2196
|
C: (f, a) => f(...a)
|
|
@@ -2111,11 +2201,11 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2111
2201
|
});
|
|
2112
2202
|
}
|
|
2113
2203
|
case Invitation5.State.AUTHENTICATING: {
|
|
2114
|
-
|
|
2204
|
+
log6("[invitation authenticating]", {
|
|
2115
2205
|
Kind,
|
|
2116
2206
|
invitation: invitation2
|
|
2117
2207
|
}, {
|
|
2118
|
-
F:
|
|
2208
|
+
F: __dxlog_file7,
|
|
2119
2209
|
L: 116,
|
|
2120
2210
|
S: void 0,
|
|
2121
2211
|
C: (f, a) => f(...a)
|
|
@@ -2126,11 +2216,11 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2126
2216
|
});
|
|
2127
2217
|
}
|
|
2128
2218
|
case Invitation5.State.SUCCESS: {
|
|
2129
|
-
|
|
2219
|
+
log6("[invitation success]", {
|
|
2130
2220
|
Kind,
|
|
2131
2221
|
invitation: invitation2
|
|
2132
2222
|
}, {
|
|
2133
|
-
F:
|
|
2223
|
+
F: __dxlog_file7,
|
|
2134
2224
|
L: 121,
|
|
2135
2225
|
S: void 0,
|
|
2136
2226
|
C: (f, a) => f(...a)
|
|
@@ -2142,10 +2232,10 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2142
2232
|
return complete?.();
|
|
2143
2233
|
}
|
|
2144
2234
|
case Invitation5.State.CANCELLED: {
|
|
2145
|
-
|
|
2235
|
+
log6.warn("[invitation cancelled]", {
|
|
2146
2236
|
Kind
|
|
2147
2237
|
}, {
|
|
2148
|
-
F:
|
|
2238
|
+
F: __dxlog_file7,
|
|
2149
2239
|
L: 127,
|
|
2150
2240
|
S: void 0,
|
|
2151
2241
|
C: (f, a) => f(...a)
|
|
@@ -2156,10 +2246,10 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2156
2246
|
});
|
|
2157
2247
|
}
|
|
2158
2248
|
case Invitation5.State.TIMEOUT: {
|
|
2159
|
-
|
|
2249
|
+
log6.error("[invitation timeout]", {
|
|
2160
2250
|
Kind
|
|
2161
2251
|
}, {
|
|
2162
|
-
F:
|
|
2252
|
+
F: __dxlog_file7,
|
|
2163
2253
|
L: 132,
|
|
2164
2254
|
S: void 0,
|
|
2165
2255
|
C: (f, a) => f(...a)
|
|
@@ -2172,11 +2262,11 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2172
2262
|
}
|
|
2173
2263
|
}, (error) => {
|
|
2174
2264
|
if (error instanceof AlreadyJoinedError) {
|
|
2175
|
-
|
|
2265
|
+
log6("[already joined]", {
|
|
2176
2266
|
Kind,
|
|
2177
2267
|
error
|
|
2178
2268
|
}, {
|
|
2179
|
-
F:
|
|
2269
|
+
F: __dxlog_file7,
|
|
2180
2270
|
L: 139,
|
|
2181
2271
|
S: void 0,
|
|
2182
2272
|
C: (f, a) => f(...a)
|
|
@@ -2187,11 +2277,11 @@ var getInvitationSubscribable = (Kind, invitation) => {
|
|
|
2187
2277
|
});
|
|
2188
2278
|
return complete?.();
|
|
2189
2279
|
}
|
|
2190
|
-
|
|
2280
|
+
log6.error("[invitation errored]", {
|
|
2191
2281
|
Kind,
|
|
2192
2282
|
error
|
|
2193
2283
|
}, {
|
|
2194
|
-
F:
|
|
2284
|
+
F: __dxlog_file7,
|
|
2195
2285
|
L: 144,
|
|
2196
2286
|
S: void 0,
|
|
2197
2287
|
C: (f, a) => f(...a)
|
|
@@ -2395,6 +2485,7 @@ var joinMachine = createMachine2({
|
|
|
2395
2485
|
}
|
|
2396
2486
|
]
|
|
2397
2487
|
},
|
|
2488
|
+
// TODO(wittjosiah): Remove.
|
|
2398
2489
|
choosingIdentity: {
|
|
2399
2490
|
initial: "unknownAuthMethod",
|
|
2400
2491
|
states: {
|
|
@@ -2447,6 +2538,7 @@ var joinMachine = createMachine2({
|
|
|
2447
2538
|
}
|
|
2448
2539
|
}
|
|
2449
2540
|
},
|
|
2541
|
+
// TODO(wittjosiah): Factor out to a machine handling recovery and device invitations.
|
|
2450
2542
|
resettingIdentity: {},
|
|
2451
2543
|
acceptingSpaceInvitation: acceptingInvitationTemplate("Space", "#join.finishingJoiningSpace"),
|
|
2452
2544
|
finishingJoiningSpace: {
|
|
@@ -2518,13 +2610,13 @@ var joinMachine = createMachine2({
|
|
|
2518
2610
|
} : context.space
|
|
2519
2611
|
}),
|
|
2520
2612
|
log: (context, event) => {
|
|
2521
|
-
|
|
2613
|
+
log6("[transition]", {
|
|
2522
2614
|
event,
|
|
2523
2615
|
haloInvitation: context.halo.invitation,
|
|
2524
2616
|
spaceInvitation: context.space.invitation
|
|
2525
2617
|
}, {
|
|
2526
|
-
F:
|
|
2527
|
-
L:
|
|
2618
|
+
F: __dxlog_file7,
|
|
2619
|
+
L: 418,
|
|
2528
2620
|
S: void 0,
|
|
2529
2621
|
C: (f, a) => f(...a)
|
|
2530
2622
|
});
|
|
@@ -2536,9 +2628,9 @@ var defaultCodeFromUrl = (invitationType, text) => {
|
|
|
2536
2628
|
const searchParams = new URLSearchParams(text.substring(text.lastIndexOf("?")));
|
|
2537
2629
|
return searchParams.get(`${invitationType}InvitationCode`) ?? searchParams.get(`${invitationType}Invitation`) ?? searchParams.get("invitationCode") ?? searchParams.get("invitation") ?? text;
|
|
2538
2630
|
} catch (err) {
|
|
2539
|
-
|
|
2540
|
-
F:
|
|
2541
|
-
L:
|
|
2631
|
+
log6.catch(err, void 0, {
|
|
2632
|
+
F: __dxlog_file7,
|
|
2633
|
+
L: 445,
|
|
2542
2634
|
S: void 0,
|
|
2543
2635
|
C: (f, a) => f(...a)
|
|
2544
2636
|
});
|
|
@@ -2557,9 +2649,9 @@ var useJoinMachine = (client, options) => {
|
|
|
2557
2649
|
invitationSubscribable: getInvitationSubscribable("Halo", invitationObservable)
|
|
2558
2650
|
};
|
|
2559
2651
|
} catch (err) {
|
|
2560
|
-
|
|
2561
|
-
F:
|
|
2562
|
-
L:
|
|
2652
|
+
log6.error("Could not redeem device invitation code", err, {
|
|
2653
|
+
F: __dxlog_file7,
|
|
2654
|
+
L: 466,
|
|
2563
2655
|
S: void 0,
|
|
2564
2656
|
C: (f, a) => f(...a)
|
|
2565
2657
|
});
|
|
@@ -2582,9 +2674,9 @@ var useJoinMachine = (client, options) => {
|
|
|
2582
2674
|
invitationSubscribable: getInvitationSubscribable("Space", invitationObservable)
|
|
2583
2675
|
};
|
|
2584
2676
|
} catch (err) {
|
|
2585
|
-
|
|
2586
|
-
F:
|
|
2587
|
-
L:
|
|
2677
|
+
log6.error("Could not redeem space invitation code", err, {
|
|
2678
|
+
F: __dxlog_file7,
|
|
2679
|
+
L: 488,
|
|
2588
2680
|
S: void 0,
|
|
2589
2681
|
C: (f, a) => f(...a)
|
|
2590
2682
|
});
|
|
@@ -2644,16 +2736,16 @@ var useJoinMachine = (client, options) => {
|
|
|
2644
2736
|
|
|
2645
2737
|
// packages/sdk/shell/src/panels/JoinPanel/steps/AdditionMethodChooser.tsx
|
|
2646
2738
|
import { CaretRight as CaretRight2, Plus as Plus3, QrCode, Textbox } from "@phosphor-icons/react";
|
|
2647
|
-
import
|
|
2648
|
-
import { useTranslation as
|
|
2739
|
+
import React30 from "react";
|
|
2740
|
+
import { useTranslation as useTranslation15 } from "@dxos/react-ui";
|
|
2649
2741
|
import { getSize as getSize15 } from "@dxos/react-ui-theme";
|
|
2650
2742
|
var AdditionMethodChooser = (viewStateProps) => {
|
|
2651
2743
|
const disabled = !viewStateProps.active;
|
|
2652
2744
|
const { send } = viewStateProps;
|
|
2653
|
-
const { t } =
|
|
2745
|
+
const { t } = useTranslation15("os");
|
|
2654
2746
|
const sharedButtonProps = {
|
|
2655
2747
|
disabled,
|
|
2656
|
-
after: /* @__PURE__ */
|
|
2748
|
+
after: /* @__PURE__ */ React30.createElement(CaretRight2, {
|
|
2657
2749
|
className: getSize15(4),
|
|
2658
2750
|
weight: "bold"
|
|
2659
2751
|
}),
|
|
@@ -2663,13 +2755,13 @@ var AdditionMethodChooser = (viewStateProps) => {
|
|
|
2663
2755
|
}
|
|
2664
2756
|
}
|
|
2665
2757
|
};
|
|
2666
|
-
return /* @__PURE__ */
|
|
2758
|
+
return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(StepHeading, null, t("addition method chooser title")), /* @__PURE__ */ React30.createElement("div", {
|
|
2667
2759
|
role: "none",
|
|
2668
2760
|
className: "flex flex-col gap-1 grow"
|
|
2669
|
-
}, /* @__PURE__ */
|
|
2761
|
+
}, /* @__PURE__ */ React30.createElement(CompoundButton, {
|
|
2670
2762
|
...sharedButtonProps,
|
|
2671
2763
|
description: t("create identity description"),
|
|
2672
|
-
before: /* @__PURE__ */
|
|
2764
|
+
before: /* @__PURE__ */ React30.createElement(Plus3, {
|
|
2673
2765
|
className: getSize15(6)
|
|
2674
2766
|
}),
|
|
2675
2767
|
onClick: () => send({
|
|
@@ -2677,22 +2769,22 @@ var AdditionMethodChooser = (viewStateProps) => {
|
|
|
2677
2769
|
}),
|
|
2678
2770
|
"data-autofocus": "choosingAuthMethod",
|
|
2679
2771
|
"data-testid": "identity-chooser.create-identity"
|
|
2680
|
-
}, t("create identity label")), /* @__PURE__ */
|
|
2772
|
+
}, t("create identity label")), /* @__PURE__ */ React30.createElement(CompoundButton, {
|
|
2681
2773
|
...sharedButtonProps,
|
|
2682
2774
|
description: t("join identity description"),
|
|
2683
|
-
before: /* @__PURE__ */
|
|
2775
|
+
before: /* @__PURE__ */ React30.createElement(QrCode, {
|
|
2684
2776
|
className: getSize15(6)
|
|
2685
2777
|
}),
|
|
2686
2778
|
onClick: () => send({
|
|
2687
2779
|
type: "acceptHaloInvitation"
|
|
2688
2780
|
}),
|
|
2689
2781
|
"data-testid": "identity-chooser.join-identity"
|
|
2690
|
-
}, t("join identity label")), /* @__PURE__ */
|
|
2782
|
+
}, t("join identity label")), /* @__PURE__ */ React30.createElement(CompoundButton, {
|
|
2691
2783
|
...sharedButtonProps,
|
|
2692
2784
|
// TODO(mykola): Implement recover.
|
|
2693
2785
|
disabled: true,
|
|
2694
2786
|
description: t("recover identity description"),
|
|
2695
|
-
before: /* @__PURE__ */
|
|
2787
|
+
before: /* @__PURE__ */ React30.createElement(Textbox, {
|
|
2696
2788
|
className: getSize15(6)
|
|
2697
2789
|
}),
|
|
2698
2790
|
onClick: () => send({
|
|
@@ -2703,39 +2795,39 @@ var AdditionMethodChooser = (viewStateProps) => {
|
|
|
2703
2795
|
};
|
|
2704
2796
|
|
|
2705
2797
|
// packages/sdk/shell/src/panels/JoinPanel/steps/IdentityAdded.tsx
|
|
2706
|
-
import
|
|
2798
|
+
import React31, { cloneElement as cloneElement2 } from "react";
|
|
2707
2799
|
import { generateName as generateName4 } from "@dxos/display-name";
|
|
2708
|
-
import { Avatar as Avatar7, useId as useId7, useTranslation as
|
|
2800
|
+
import { Avatar as Avatar7, useId as useId7, useTranslation as useTranslation16 } from "@dxos/react-ui";
|
|
2709
2801
|
import { mx as mx23 } from "@dxos/react-ui-theme";
|
|
2710
2802
|
import { hexToFallback } from "@dxos/util";
|
|
2711
2803
|
var IdentityAdded = (props) => {
|
|
2712
2804
|
const { mode, addedIdentity, active, send, onDone, doneActionParent } = props;
|
|
2713
2805
|
const disabled = !active;
|
|
2714
|
-
const { t } =
|
|
2806
|
+
const { t } = useTranslation16("os");
|
|
2715
2807
|
const addedIdentityHex = addedIdentity?.identityKey.toHex() ?? "0";
|
|
2716
2808
|
const fallbackValue = hexToFallback(addedIdentityHex);
|
|
2717
2809
|
const labelId = useId7("identityListItem__label");
|
|
2718
2810
|
const displayName = addedIdentity?.profile?.displayName ?? (addedIdentity && generateName4(addedIdentityHex));
|
|
2719
|
-
const doneAction = /* @__PURE__ */
|
|
2811
|
+
const doneAction = /* @__PURE__ */ React31.createElement(Action, {
|
|
2720
2812
|
...onDone && {
|
|
2721
2813
|
onClick: () => onDone(null)
|
|
2722
2814
|
},
|
|
2723
2815
|
disabled,
|
|
2724
2816
|
"data-autofocus": "confirmingAddedIdentity",
|
|
2725
2817
|
"data-testid": "identity-added-done"
|
|
2726
|
-
}, /* @__PURE__ */
|
|
2727
|
-
return /* @__PURE__ */
|
|
2818
|
+
}, /* @__PURE__ */ React31.createElement("span", null, t("done label")));
|
|
2819
|
+
return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(StepHeading, null, t("identity added label")), /* @__PURE__ */ React31.createElement("div", {
|
|
2728
2820
|
role: "none",
|
|
2729
2821
|
className: "grow flex flex-col items-center justify-center text-center gap-2"
|
|
2730
|
-
}, /* @__PURE__ */
|
|
2822
|
+
}, /* @__PURE__ */ React31.createElement(Avatar7.Root, {
|
|
2731
2823
|
status: "active",
|
|
2732
2824
|
labelId,
|
|
2733
2825
|
hue: addedIdentity?.profile?.data?.hue || fallbackValue.hue
|
|
2734
|
-
}, /* @__PURE__ */
|
|
2826
|
+
}, /* @__PURE__ */ React31.createElement(Avatar7.Frame, null, /* @__PURE__ */ React31.createElement(Avatar7.Fallback, {
|
|
2735
2827
|
text: addedIdentity?.profile?.data?.emoji || fallbackValue.emoji
|
|
2736
|
-
})), /* @__PURE__ */
|
|
2828
|
+
})), /* @__PURE__ */ React31.createElement(Avatar7.Label, {
|
|
2737
2829
|
classNames: mx23("text-lg truncate", !addedIdentity?.profile?.displayName && "font-mono")
|
|
2738
|
-
}, displayName))), /* @__PURE__ */
|
|
2830
|
+
}, displayName))), /* @__PURE__ */ React31.createElement(Actions, null, mode === "halo-only" ? doneActionParent ? /* @__PURE__ */ cloneElement2(doneActionParent, {}, doneAction) : doneAction : /* @__PURE__ */ React31.createElement(Action, {
|
|
2739
2831
|
variant: "primary",
|
|
2740
2832
|
disabled: disabled || !addedIdentity,
|
|
2741
2833
|
onClick: () => addedIdentity && send({
|
|
@@ -2747,16 +2839,16 @@ var IdentityAdded = (props) => {
|
|
|
2747
2839
|
};
|
|
2748
2840
|
|
|
2749
2841
|
// packages/sdk/shell/src/panels/JoinPanel/steps/IdentityInput.tsx
|
|
2750
|
-
import
|
|
2751
|
-
import { log as
|
|
2752
|
-
import { useClient as
|
|
2753
|
-
import { useTranslation as
|
|
2754
|
-
var
|
|
2842
|
+
import React32, { useState as useState9 } from "react";
|
|
2843
|
+
import { log as log7 } from "@dxos/log";
|
|
2844
|
+
import { useClient as useClient7 } from "@dxos/react-client";
|
|
2845
|
+
import { useTranslation as useTranslation17 } from "@dxos/react-ui";
|
|
2846
|
+
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/steps/IdentityInput.tsx";
|
|
2755
2847
|
var IdentityInput = (props) => {
|
|
2756
2848
|
const { send, method } = props;
|
|
2757
2849
|
const isRecover = method === "recover identity";
|
|
2758
|
-
const client =
|
|
2759
|
-
const { t } =
|
|
2850
|
+
const client = useClient7();
|
|
2851
|
+
const { t } = useTranslation17("os");
|
|
2760
2852
|
const [validationMessage, setValidationMessage] = useState9("");
|
|
2761
2853
|
const createIdentity = (displayName) => {
|
|
2762
2854
|
void client.halo.createIdentity({
|
|
@@ -2767,8 +2859,8 @@ var IdentityInput = (props) => {
|
|
|
2767
2859
|
identity
|
|
2768
2860
|
});
|
|
2769
2861
|
}, (error) => {
|
|
2770
|
-
|
|
2771
|
-
F:
|
|
2862
|
+
log7.catch(error, void 0, {
|
|
2863
|
+
F: __dxlog_file8,
|
|
2772
2864
|
L: 37,
|
|
2773
2865
|
S: void 0,
|
|
2774
2866
|
C: (f, a) => f(...a)
|
|
@@ -2776,7 +2868,7 @@ var IdentityInput = (props) => {
|
|
|
2776
2868
|
setValidationMessage(t(isRecover ? "failed to recover identity message" : "failed to create identity message"));
|
|
2777
2869
|
});
|
|
2778
2870
|
};
|
|
2779
|
-
return /* @__PURE__ */
|
|
2871
|
+
return /* @__PURE__ */ React32.createElement(IdentityInputImpl, {
|
|
2780
2872
|
...props,
|
|
2781
2873
|
onDisplayNameConfirm: createIdentity,
|
|
2782
2874
|
validationMessage
|
|
@@ -2785,27 +2877,27 @@ var IdentityInput = (props) => {
|
|
|
2785
2877
|
var IdentityInputImpl = (props) => {
|
|
2786
2878
|
const { method, send, active, onDisplayNameConfirm, validationMessage } = props;
|
|
2787
2879
|
const disabled = !active;
|
|
2788
|
-
const { t } =
|
|
2880
|
+
const { t } = useTranslation17("os");
|
|
2789
2881
|
const [inputValue, setInputValue] = useState9("");
|
|
2790
2882
|
const isRecover = method === "recover identity";
|
|
2791
|
-
return /* @__PURE__ */
|
|
2883
|
+
return /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement("div", {
|
|
2792
2884
|
role: "none",
|
|
2793
2885
|
className: "grow flex flex-col justify-center"
|
|
2794
|
-
}, /* @__PURE__ */
|
|
2886
|
+
}, /* @__PURE__ */ React32.createElement(Input, {
|
|
2795
2887
|
validationMessage,
|
|
2796
|
-
label: /* @__PURE__ */
|
|
2888
|
+
label: /* @__PURE__ */ React32.createElement(StepHeading, null, t(isRecover ? "recover identity input label" : "new identity input label")),
|
|
2797
2889
|
disabled,
|
|
2798
2890
|
"data-testid": "identity-input",
|
|
2799
2891
|
placeholder: isRecover ? "Type your recovery phrase" : "Type a display name",
|
|
2800
2892
|
onChange: ({ target: { value } }) => setInputValue(value)
|
|
2801
|
-
})), /* @__PURE__ */
|
|
2893
|
+
})), /* @__PURE__ */ React32.createElement(Actions, null, /* @__PURE__ */ React32.createElement(Action, {
|
|
2802
2894
|
variant: "ghost",
|
|
2803
2895
|
disabled,
|
|
2804
2896
|
onClick: () => send?.({
|
|
2805
2897
|
type: "deselectAuthMethod"
|
|
2806
2898
|
}),
|
|
2807
2899
|
"data-testid": `${method === "recover identity" ? "recover" : "create"}-identity-input-back`
|
|
2808
|
-
}, t("back label")), /* @__PURE__ */
|
|
2900
|
+
}, t("back label")), /* @__PURE__ */ React32.createElement(Action, {
|
|
2809
2901
|
variant: "primary",
|
|
2810
2902
|
disabled,
|
|
2811
2903
|
onClick: () => onDisplayNameConfirm?.(inputValue),
|
|
@@ -2813,41 +2905,19 @@ var IdentityInputImpl = (props) => {
|
|
|
2813
2905
|
}, t("continue label"))));
|
|
2814
2906
|
};
|
|
2815
2907
|
|
|
2816
|
-
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationAccepted.tsx
|
|
2817
|
-
import React34, { cloneElement as cloneElement3 } from "react";
|
|
2818
|
-
import { useTranslation as useTranslation19 } from "@dxos/react-ui";
|
|
2819
|
-
var InvitationAccepted = (props) => {
|
|
2820
|
-
const { active, Kind, doneActionParent, onDone } = props;
|
|
2821
|
-
const disabled = !active;
|
|
2822
|
-
const { t } = useTranslation19("os");
|
|
2823
|
-
const doneAction = /* @__PURE__ */ React34.createElement(Action, {
|
|
2824
|
-
variant: "primary",
|
|
2825
|
-
onClick: onDone,
|
|
2826
|
-
disabled,
|
|
2827
|
-
"data-autofocus": `success${Kind}Invitation finishingJoining${Kind}`,
|
|
2828
|
-
"data-testid": `${Kind.toLowerCase()}-invitation-accepted-done`
|
|
2829
|
-
}, t("done label"));
|
|
2830
|
-
return /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement("div", {
|
|
2831
|
-
role: "none",
|
|
2832
|
-
className: "grow flex flex-col justify-center"
|
|
2833
|
-
}, /* @__PURE__ */ React34.createElement("p", {
|
|
2834
|
-
className: "text-center text-sm font-normal"
|
|
2835
|
-
}, t("welcome message"))), /* @__PURE__ */ React34.createElement(Actions, null, doneActionParent ? /* @__PURE__ */ cloneElement3(doneActionParent, {}, doneAction) : doneAction));
|
|
2836
|
-
};
|
|
2837
|
-
|
|
2838
2908
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationInput.tsx
|
|
2839
|
-
import
|
|
2840
|
-
import { log as
|
|
2841
|
-
import { useTranslation as
|
|
2842
|
-
var
|
|
2909
|
+
import React33, { useState as useState10, useEffect as useEffect5, cloneElement as cloneElement3 } from "react";
|
|
2910
|
+
import { log as log8 } from "@dxos/log";
|
|
2911
|
+
import { useTranslation as useTranslation18 } from "@dxos/react-ui";
|
|
2912
|
+
var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/steps/InvitationInput.tsx";
|
|
2843
2913
|
var invitationCodeFromUrl = (text) => {
|
|
2844
2914
|
try {
|
|
2845
2915
|
const searchParams = new URLSearchParams(text.substring(text.lastIndexOf("?")));
|
|
2846
2916
|
const invitation = searchParams.get("spaceInvitationCode") ?? searchParams.get("deviceInvitationCode");
|
|
2847
2917
|
return invitation ?? text;
|
|
2848
2918
|
} catch (err) {
|
|
2849
|
-
|
|
2850
|
-
F:
|
|
2919
|
+
log8.catch(err, void 0, {
|
|
2920
|
+
F: __dxlog_file9,
|
|
2851
2921
|
L: 25,
|
|
2852
2922
|
S: void 0,
|
|
2853
2923
|
C: (f, a) => f(...a)
|
|
@@ -2858,9 +2928,9 @@ var invitationCodeFromUrl = (text) => {
|
|
|
2858
2928
|
var InvitationInput = (props) => {
|
|
2859
2929
|
const { Kind, active, send, unredeemedCode, onExit, exitActionParent, onDone, doneActionParent, succeededKeys } = props;
|
|
2860
2930
|
const disabled = !active;
|
|
2861
|
-
const { t } =
|
|
2931
|
+
const { t } = useTranslation18("os");
|
|
2862
2932
|
const [inputValue, setInputValue] = useState10(unredeemedCode ?? "");
|
|
2863
|
-
|
|
2933
|
+
useEffect5(() => {
|
|
2864
2934
|
unredeemedCode && setInputValue(unredeemedCode ?? "");
|
|
2865
2935
|
}, [
|
|
2866
2936
|
unredeemedCode
|
|
@@ -2877,7 +2947,7 @@ var InvitationInput = (props) => {
|
|
|
2877
2947
|
}
|
|
2878
2948
|
});
|
|
2879
2949
|
};
|
|
2880
|
-
const exitAction = /* @__PURE__ */
|
|
2950
|
+
const exitAction = /* @__PURE__ */ React33.createElement(Action, {
|
|
2881
2951
|
variant: "ghost",
|
|
2882
2952
|
disabled,
|
|
2883
2953
|
...onExit ? {
|
|
@@ -2887,11 +2957,11 @@ var InvitationInput = (props) => {
|
|
|
2887
2957
|
},
|
|
2888
2958
|
"data-testid": "join-exit"
|
|
2889
2959
|
}, t("cancel label"));
|
|
2890
|
-
return /* @__PURE__ */
|
|
2960
|
+
return /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement("div", {
|
|
2891
2961
|
role: "none",
|
|
2892
2962
|
className: "grow flex flex-col justify-center"
|
|
2893
|
-
}, /* @__PURE__ */
|
|
2894
|
-
label: /* @__PURE__ */
|
|
2963
|
+
}, /* @__PURE__ */ React33.createElement(Input, {
|
|
2964
|
+
label: /* @__PURE__ */ React33.createElement(StepHeading, null, t("invitation input label")),
|
|
2895
2965
|
// TODO(burdon): Translation.
|
|
2896
2966
|
placeholder: "Type an invitation code",
|
|
2897
2967
|
disabled,
|
|
@@ -2900,24 +2970,17 @@ var InvitationInput = (props) => {
|
|
|
2900
2970
|
"data-autofocus": `inputting${Kind}InvitationCode`,
|
|
2901
2971
|
"data-testid": `${Kind.toLowerCase()}-invitation-input`,
|
|
2902
2972
|
onKeyUp: ({ key }) => key === "Enter" && handleNext()
|
|
2903
|
-
})), /* @__PURE__ */
|
|
2904
|
-
variant: "ghost",
|
|
2905
|
-
disabled,
|
|
2906
|
-
onClick: () => send({
|
|
2907
|
-
type: "deselectAuthMethod"
|
|
2908
|
-
}),
|
|
2909
|
-
"data-testid": `${Kind.toLowerCase()}-invitation-input-back`
|
|
2910
|
-
}, t("back label")) : exitActionParent ? /* @__PURE__ */ cloneElement4(exitActionParent, {}, exitAction) : doneActionParent ? /* @__PURE__ */ cloneElement4(doneActionParent, {}, exitAction) : exitAction, /* @__PURE__ */ React35.createElement(Action, {
|
|
2973
|
+
})), /* @__PURE__ */ React33.createElement(Actions, null, Kind === "Halo" ? null : exitActionParent ? /* @__PURE__ */ cloneElement3(exitActionParent, {}, exitAction) : doneActionParent ? /* @__PURE__ */ cloneElement3(doneActionParent, {}, exitAction) : exitAction, /* @__PURE__ */ React33.createElement(Action, {
|
|
2911
2974
|
variant: "primary",
|
|
2912
|
-
disabled,
|
|
2975
|
+
disabled: disabled || inputValue.trim().length === 0,
|
|
2913
2976
|
onClick: handleNext,
|
|
2914
2977
|
"data-testid": `${Kind.toLowerCase()}-invitation-input-continue`
|
|
2915
2978
|
}, t("continue label"))));
|
|
2916
2979
|
};
|
|
2917
2980
|
|
|
2918
2981
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationRescuer.tsx
|
|
2919
|
-
import
|
|
2920
|
-
import { useTranslation as
|
|
2982
|
+
import React34 from "react";
|
|
2983
|
+
import { useTranslation as useTranslation19 } from "@dxos/react-ui";
|
|
2921
2984
|
import { descriptionText as descriptionText10 } from "@dxos/react-ui-theme";
|
|
2922
2985
|
var InvitationActions = ({
|
|
2923
2986
|
// `invitationState` does report correct state, but here we evaluate whether `failReason` is a better source of truth
|
|
@@ -2929,14 +2992,14 @@ var InvitationActions = ({
|
|
|
2929
2992
|
Kind,
|
|
2930
2993
|
failReason
|
|
2931
2994
|
}) => {
|
|
2932
|
-
const { t } =
|
|
2995
|
+
const { t } = useTranslation19("os");
|
|
2933
2996
|
if (failReason) {
|
|
2934
|
-
return /* @__PURE__ */
|
|
2997
|
+
return /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(StepHeading, {
|
|
2935
2998
|
className: descriptionText10
|
|
2936
|
-
}, t(failReason === "timeout" ? "timeout status label" : failReason === "cancelled" ? "cancelled status label" : "error status label")), /* @__PURE__ */
|
|
2999
|
+
}, t(failReason === "timeout" ? "timeout status label" : failReason === "cancelled" ? "cancelled status label" : "error status label")), /* @__PURE__ */ React34.createElement("div", {
|
|
2937
3000
|
role: "none",
|
|
2938
3001
|
className: "grow"
|
|
2939
|
-
}), /* @__PURE__ */
|
|
3002
|
+
}), /* @__PURE__ */ React34.createElement(Actions, null, /* @__PURE__ */ React34.createElement(Action, {
|
|
2940
3003
|
disabled: !active,
|
|
2941
3004
|
onClick: () => send({
|
|
2942
3005
|
type: `reset${Kind}Invitation`
|
|
@@ -2944,16 +3007,16 @@ var InvitationActions = ({
|
|
|
2944
3007
|
"data-testid": "invitation-rescuer-reset"
|
|
2945
3008
|
}, t("reset label"))));
|
|
2946
3009
|
} else {
|
|
2947
|
-
return /* @__PURE__ */
|
|
3010
|
+
return /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(StepHeading, {
|
|
2948
3011
|
className: descriptionText10
|
|
2949
|
-
}, t("connecting status label")), /* @__PURE__ */
|
|
3012
|
+
}, t("connecting status label")), /* @__PURE__ */ React34.createElement("div", {
|
|
2950
3013
|
role: "none",
|
|
2951
3014
|
className: "grow"
|
|
2952
|
-
}), /* @__PURE__ */
|
|
3015
|
+
}), /* @__PURE__ */ React34.createElement(Actions, null, /* @__PURE__ */ React34.createElement(Action, {
|
|
2953
3016
|
disabled: true,
|
|
2954
3017
|
classNames: "order-2",
|
|
2955
3018
|
"data-testid": "next"
|
|
2956
|
-
}, t("next label")), /* @__PURE__ */
|
|
3019
|
+
}, t("next label")), /* @__PURE__ */ React34.createElement(Action, {
|
|
2957
3020
|
disabled: !active,
|
|
2958
3021
|
onClick: onInvitationCancel,
|
|
2959
3022
|
"data-testid": "invitation-rescuer-cancel"
|
|
@@ -2962,29 +3025,31 @@ var InvitationActions = ({
|
|
|
2962
3025
|
};
|
|
2963
3026
|
var InvitationRescuer = (props) => {
|
|
2964
3027
|
const { Kind, invitationState, active, send } = props;
|
|
2965
|
-
const { t } =
|
|
2966
|
-
return /* @__PURE__ */
|
|
3028
|
+
const { t } = useTranslation19("os");
|
|
3029
|
+
return /* @__PURE__ */ React34.createElement(React34.Fragment, null, typeof invitationState === "undefined" ? /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement("div", {
|
|
2967
3030
|
role: "none",
|
|
2968
3031
|
className: "grow flex flex-col justify-center"
|
|
2969
|
-
}, /* @__PURE__ */
|
|
3032
|
+
}, /* @__PURE__ */ React34.createElement(StepHeading, {
|
|
2970
3033
|
className: descriptionText10
|
|
2971
|
-
}, "There was a problem joining the space")), /* @__PURE__ */
|
|
3034
|
+
}, "There was a problem joining the space")), /* @__PURE__ */ React34.createElement(Actions, null, /* @__PURE__ */ React34.createElement(Action, {
|
|
2972
3035
|
disabled: !active,
|
|
2973
3036
|
"data-testid": "invitation-rescuer-blank-reset",
|
|
2974
3037
|
onClick: () => send({
|
|
2975
3038
|
type: `reset${Kind}Invitation`
|
|
2976
3039
|
})
|
|
2977
|
-
}, t("reset label")))) : /* @__PURE__ */
|
|
3040
|
+
}, t("reset label")))) : /* @__PURE__ */ React34.createElement(InvitationActions, props));
|
|
2978
3041
|
};
|
|
2979
3042
|
|
|
2980
3043
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationAuthenticator.tsx
|
|
2981
|
-
import
|
|
2982
|
-
import {
|
|
2983
|
-
import {
|
|
3044
|
+
import React35, { useState as useState11 } from "react";
|
|
3045
|
+
import { Invitation as Invitation6 } from "@dxos/react-client/invitations";
|
|
3046
|
+
import { Input as Input3, useTranslation as useTranslation20 } from "@dxos/react-ui";
|
|
3047
|
+
import { descriptionText as descriptionText11 } from "@dxos/react-ui-theme";
|
|
3048
|
+
import { hexToEmoji as hexToEmoji4 } from "@dxos/util";
|
|
2984
3049
|
var pinLength = 6;
|
|
2985
|
-
var InvitationAuthenticator = ({ failed, Kind, active, pending, invitationId, onInvitationAuthenticate, onInvitationCancel }) => {
|
|
3050
|
+
var InvitationAuthenticator = ({ failed, Kind, authMethod, active, pending, invitationId, onInvitationAuthenticate, onInvitationCancel }) => {
|
|
2986
3051
|
const disabled = !active || pending;
|
|
2987
|
-
const { t } =
|
|
3052
|
+
const { t } = useTranslation20("os");
|
|
2988
3053
|
const invitationType = Kind.toLowerCase();
|
|
2989
3054
|
const [authCode, setAuthCode] = useState11("");
|
|
2990
3055
|
const onChange = ({ target: { value } }) => {
|
|
@@ -2993,14 +3058,19 @@ var InvitationAuthenticator = ({ failed, Kind, active, pending, invitationId, on
|
|
|
2993
3058
|
document.querySelector(`[data-autofocus-pinlength="${invitationType}"]`)?.focus();
|
|
2994
3059
|
}
|
|
2995
3060
|
};
|
|
2996
|
-
return /* @__PURE__ */
|
|
3061
|
+
return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement("div", {
|
|
2997
3062
|
role: "none",
|
|
2998
3063
|
className: "grow flex flex-col justify-center gap-4"
|
|
2999
|
-
}, /* @__PURE__ */
|
|
3064
|
+
}, /* @__PURE__ */ React35.createElement(Input3.Root, failed && {
|
|
3000
3065
|
validationValence: "error"
|
|
3001
|
-
}, /* @__PURE__ */
|
|
3066
|
+
}, /* @__PURE__ */ React35.createElement(Input3.Label, {
|
|
3002
3067
|
asChild: true
|
|
3003
|
-
}, /* @__PURE__ */
|
|
3068
|
+
}, authMethod === Invitation6.AuthMethod.SHARED_SECRET ? /* @__PURE__ */ React35.createElement(StepHeading, null, t("auth code input label")) : /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(StepHeading, {
|
|
3069
|
+
className: descriptionText11
|
|
3070
|
+
}, t("authenticating label")), /* @__PURE__ */ React35.createElement("div", {
|
|
3071
|
+
role: "none",
|
|
3072
|
+
className: "grow"
|
|
3073
|
+
}))), authMethod === Invitation6.AuthMethod.SHARED_SECRET && /* @__PURE__ */ React35.createElement(Input3.PinInput, {
|
|
3004
3074
|
disabled,
|
|
3005
3075
|
length: pinLength,
|
|
3006
3076
|
onChange,
|
|
@@ -3011,18 +3081,18 @@ var InvitationAuthenticator = ({ failed, Kind, active, pending, invitationId, on
|
|
|
3011
3081
|
"data-prevent-ios-autofocus": true,
|
|
3012
3082
|
"data-testid": `${invitationType}-auth-code-input`,
|
|
3013
3083
|
"data-1p-ignore": true
|
|
3014
|
-
}), failed && /* @__PURE__ */
|
|
3084
|
+
}), failed && /* @__PURE__ */ React35.createElement(Input3.DescriptionAndValidation, {
|
|
3015
3085
|
classNames: "text-center"
|
|
3016
|
-
}, /* @__PURE__ */
|
|
3086
|
+
}, /* @__PURE__ */ React35.createElement(Input3.Validation, null, t("failed to authenticate message")))), invitationId && authMethod === Invitation6.AuthMethod.SHARED_SECRET && /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(Label, null, t("auth other device emoji message")), /* @__PURE__ */ React35.createElement("div", {
|
|
3017
3087
|
className: "flex justify-center"
|
|
3018
|
-
}, /* @__PURE__ */
|
|
3019
|
-
text:
|
|
3020
|
-
})))), /* @__PURE__ */
|
|
3088
|
+
}, /* @__PURE__ */ React35.createElement(Emoji, {
|
|
3089
|
+
text: hexToEmoji4(invitationId)
|
|
3090
|
+
})))), /* @__PURE__ */ React35.createElement(Actions, null, /* @__PURE__ */ React35.createElement(Action, {
|
|
3021
3091
|
variant: "ghost",
|
|
3022
3092
|
disabled,
|
|
3023
3093
|
onClick: () => onInvitationCancel?.(),
|
|
3024
3094
|
"data-testid": `${invitationType}-invitation-authenticator-cancel`
|
|
3025
|
-
}, t("cancel label")), /* @__PURE__ */
|
|
3095
|
+
}, t("cancel label")), /* @__PURE__ */ React35.createElement(Action, {
|
|
3026
3096
|
variant: "primary",
|
|
3027
3097
|
disabled,
|
|
3028
3098
|
onClick: () => onInvitationAuthenticate?.(authCode),
|
|
@@ -3035,7 +3105,7 @@ var InvitationAuthenticator = ({ failed, Kind, active, pending, invitationId, on
|
|
|
3035
3105
|
var stepStyles = "pbs-1 pbe-3 pli-3";
|
|
3036
3106
|
|
|
3037
3107
|
// packages/sdk/shell/src/styles/invitationStatusStyles.ts
|
|
3038
|
-
import { Invitation as
|
|
3108
|
+
import { Invitation as Invitation7 } from "@dxos/react-client/invitations";
|
|
3039
3109
|
var inactiveBgColor = "bg-neutral-100 dark:bg-neutral-600";
|
|
3040
3110
|
var activeBgColor = "bg-primary-500 dark:bg-primary-400";
|
|
3041
3111
|
var successBgColor = "bg-success-500 dark:bg-success-400";
|
|
@@ -3051,56 +3121,79 @@ var activeStrokeColor = "stroke-primary-400 dark:stroke-primary-150";
|
|
|
3051
3121
|
var successStrokeColor = "stroke-success-300 dark:stroke-primary-400";
|
|
3052
3122
|
var errorStrokeColor = "stroke-error-300 dark:stroke-error-500";
|
|
3053
3123
|
var cancelledStrokeColor = "stroke-warning-300 dark:stroke-warning-500";
|
|
3054
|
-
var resolvedStrokeColor = (status) => status ===
|
|
3055
|
-
var resolvedBgColor = (status) => status ===
|
|
3056
|
-
var resolvedTextColor = (status) => status ===
|
|
3124
|
+
var resolvedStrokeColor = (status) => status === Invitation7.State.ERROR ? errorStrokeColor : status === Invitation7.State.CANCELLED || status === Invitation7.State.TIMEOUT ? cancelledStrokeColor : successStrokeColor;
|
|
3125
|
+
var resolvedBgColor = (status) => status === Invitation7.State.ERROR ? errorBgColor : status === Invitation7.State.CANCELLED || status === Invitation7.State.TIMEOUT ? cancelledBgColor : successBgColor;
|
|
3126
|
+
var resolvedTextColor = (status) => status === Invitation7.State.ERROR ? errorTextColor : status === Invitation7.State.CANCELLED || status === Invitation7.State.TIMEOUT ? cancelledTextColor : successTextColor;
|
|
3057
3127
|
|
|
3058
3128
|
// packages/sdk/shell/src/panels/JoinPanel/JoinPanel.tsx
|
|
3059
|
-
var
|
|
3129
|
+
var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/JoinPanel.tsx";
|
|
3060
3130
|
var JoinPanelImpl = (props) => {
|
|
3061
|
-
const {
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3131
|
+
const {
|
|
3132
|
+
titleId,
|
|
3133
|
+
send,
|
|
3134
|
+
activeView,
|
|
3135
|
+
failed,
|
|
3136
|
+
mode,
|
|
3137
|
+
unredeemedCodes,
|
|
3138
|
+
invitationIds,
|
|
3139
|
+
invitationStates,
|
|
3140
|
+
invitationAuthMethods,
|
|
3141
|
+
succeededKeys,
|
|
3142
|
+
failReasons,
|
|
3143
|
+
onExit,
|
|
3144
|
+
onHaloDone,
|
|
3145
|
+
// onSpaceDone,
|
|
3146
|
+
exitActionParent,
|
|
3147
|
+
doneActionParent,
|
|
3148
|
+
onHaloInvitationCancel,
|
|
3149
|
+
onSpaceInvitationCancel,
|
|
3150
|
+
onHaloInvitationAuthenticate,
|
|
3151
|
+
onSpaceInvitationAuthenticate,
|
|
3152
|
+
onCancelResetStorage,
|
|
3153
|
+
onConfirmResetStorage,
|
|
3154
|
+
IdentityInput: IdentityInputComponent = IdentityInput,
|
|
3155
|
+
ConfirmReset: ConfirmResetComponent = ConfirmReset
|
|
3156
|
+
} = props;
|
|
3157
|
+
return /* @__PURE__ */ React36.createElement(React36.Fragment, null, mode !== "halo-only" && /* @__PURE__ */ React36.createElement(JoinHeading, {
|
|
3065
3158
|
titleId,
|
|
3066
3159
|
mode,
|
|
3067
3160
|
onExit,
|
|
3068
3161
|
exitActionParent
|
|
3069
|
-
}), /* @__PURE__ */
|
|
3162
|
+
}), /* @__PURE__ */ React36.createElement(Viewport.Root, {
|
|
3070
3163
|
focusManaged: true,
|
|
3071
3164
|
activeView
|
|
3072
|
-
}, /* @__PURE__ */
|
|
3165
|
+
}, /* @__PURE__ */ React36.createElement(Viewport.Views, null, /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3073
3166
|
classNames: stepStyles,
|
|
3074
3167
|
id: "addition method chooser"
|
|
3075
|
-
}, /* @__PURE__ */
|
|
3168
|
+
}, /* @__PURE__ */ React36.createElement(AdditionMethodChooser, {
|
|
3076
3169
|
send,
|
|
3077
3170
|
active: activeView === "addition method chooser"
|
|
3078
|
-
})), /* @__PURE__ */
|
|
3171
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3079
3172
|
classNames: stepStyles,
|
|
3080
3173
|
id: "reset storage confirmation"
|
|
3081
|
-
}, /* @__PURE__ */
|
|
3174
|
+
}, /* @__PURE__ */ React36.createElement(ConfirmResetComponent, {
|
|
3082
3175
|
send,
|
|
3083
3176
|
active: activeView === "reset storage confirmation",
|
|
3084
3177
|
onCancel: onCancelResetStorage,
|
|
3085
3178
|
onConfirm: onConfirmResetStorage
|
|
3086
|
-
})), /* @__PURE__ */
|
|
3179
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3087
3180
|
classNames: stepStyles,
|
|
3088
3181
|
id: "create identity input"
|
|
3089
|
-
}, /* @__PURE__ */
|
|
3182
|
+
}, /* @__PURE__ */ React36.createElement(IdentityInputComponent, {
|
|
3090
3183
|
send,
|
|
3091
3184
|
method: "create identity",
|
|
3092
3185
|
active: activeView === "create identity input"
|
|
3093
|
-
})), /* @__PURE__ */
|
|
3186
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3094
3187
|
classNames: stepStyles,
|
|
3095
3188
|
id: "recover identity input"
|
|
3096
|
-
}, /* @__PURE__ */
|
|
3189
|
+
}, /* @__PURE__ */ React36.createElement(IdentityInputComponent, {
|
|
3097
3190
|
send,
|
|
3098
3191
|
method: "recover identity",
|
|
3099
3192
|
active: activeView === "recover identity input"
|
|
3100
|
-
})), /* @__PURE__ */
|
|
3193
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3101
3194
|
classNames: stepStyles,
|
|
3102
3195
|
id: "halo invitation input"
|
|
3103
|
-
}, /* @__PURE__ */
|
|
3196
|
+
}, /* @__PURE__ */ React36.createElement(InvitationInput, {
|
|
3104
3197
|
send,
|
|
3105
3198
|
Kind: "Halo",
|
|
3106
3199
|
active: activeView === "halo invitation input",
|
|
@@ -3110,51 +3203,43 @@ var JoinPanelImpl = (props) => {
|
|
|
3110
3203
|
...succeededKeys?.Halo && {
|
|
3111
3204
|
succeededKeys: succeededKeys.Halo
|
|
3112
3205
|
}
|
|
3113
|
-
})), /* @__PURE__ */
|
|
3206
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3114
3207
|
classNames: stepStyles,
|
|
3115
3208
|
id: "halo invitation rescuer"
|
|
3116
|
-
}, /* @__PURE__ */
|
|
3209
|
+
}, /* @__PURE__ */ React36.createElement(InvitationRescuer, {
|
|
3117
3210
|
send,
|
|
3118
3211
|
Kind: "Halo",
|
|
3119
3212
|
active: activeView === "halo invitation rescuer",
|
|
3120
3213
|
invitationState: invitationStates?.Halo,
|
|
3121
3214
|
onInvitationCancel: onHaloInvitationCancel,
|
|
3122
3215
|
failReason: failReasons?.Halo
|
|
3123
|
-
})), /* @__PURE__ */
|
|
3216
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3124
3217
|
classNames: stepStyles,
|
|
3125
3218
|
id: "halo invitation authenticator"
|
|
3126
|
-
}, /* @__PURE__ */
|
|
3219
|
+
}, /* @__PURE__ */ React36.createElement(InvitationAuthenticator, {
|
|
3127
3220
|
send,
|
|
3128
3221
|
Kind: "Halo",
|
|
3129
3222
|
invitationId: invitationIds?.Halo,
|
|
3223
|
+
authMethod: invitationAuthMethods?.Halo,
|
|
3130
3224
|
active: activeView === "halo invitation authenticator",
|
|
3131
3225
|
onInvitationCancel: onHaloInvitationCancel,
|
|
3132
3226
|
onInvitationAuthenticate: onHaloInvitationAuthenticate,
|
|
3133
3227
|
...failed.has("Halo") && {
|
|
3134
3228
|
failed: true
|
|
3135
3229
|
}
|
|
3136
|
-
})), /* @__PURE__ */
|
|
3137
|
-
classNames: stepStyles,
|
|
3138
|
-
id: "halo invitation accepted"
|
|
3139
|
-
}, /* @__PURE__ */ React38.createElement(InvitationAccepted, {
|
|
3140
|
-
send,
|
|
3141
|
-
Kind: "Halo",
|
|
3142
|
-
active: activeView === "halo invitation accepted",
|
|
3143
|
-
doneActionParent,
|
|
3144
|
-
onDone: onHaloDone
|
|
3145
|
-
})), /* @__PURE__ */ React38.createElement(Viewport.View, {
|
|
3230
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3146
3231
|
classNames: stepStyles,
|
|
3147
3232
|
id: "identity added"
|
|
3148
|
-
}, /* @__PURE__ */
|
|
3233
|
+
}, /* @__PURE__ */ React36.createElement(IdentityAdded, {
|
|
3149
3234
|
send,
|
|
3150
3235
|
mode,
|
|
3151
3236
|
active: activeView === "identity added",
|
|
3152
3237
|
doneActionParent,
|
|
3153
3238
|
onDone: onHaloDone
|
|
3154
|
-
})), /* @__PURE__ */
|
|
3239
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3155
3240
|
classNames: stepStyles,
|
|
3156
3241
|
id: "space invitation input"
|
|
3157
|
-
}, /* @__PURE__ */
|
|
3242
|
+
}, /* @__PURE__ */ React36.createElement(InvitationInput, {
|
|
3158
3243
|
send,
|
|
3159
3244
|
Kind: "Space",
|
|
3160
3245
|
active: activeView === "space invitation input",
|
|
@@ -3166,42 +3251,34 @@ var JoinPanelImpl = (props) => {
|
|
|
3166
3251
|
},
|
|
3167
3252
|
onExit,
|
|
3168
3253
|
exitActionParent
|
|
3169
|
-
})), /* @__PURE__ */
|
|
3254
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3170
3255
|
classNames: stepStyles,
|
|
3171
3256
|
id: "space invitation rescuer"
|
|
3172
|
-
}, /* @__PURE__ */
|
|
3257
|
+
}, /* @__PURE__ */ React36.createElement(InvitationRescuer, {
|
|
3173
3258
|
send,
|
|
3174
3259
|
Kind: "Space",
|
|
3175
3260
|
active: activeView === "space invitation rescuer",
|
|
3176
3261
|
invitationState: invitationStates?.Space,
|
|
3177
3262
|
onInvitationCancel: onSpaceInvitationCancel,
|
|
3178
3263
|
failReason: failReasons?.Space
|
|
3179
|
-
})), /* @__PURE__ */
|
|
3264
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
3180
3265
|
classNames: stepStyles,
|
|
3181
3266
|
id: "space invitation authenticator"
|
|
3182
|
-
}, /* @__PURE__ */
|
|
3267
|
+
}, /* @__PURE__ */ React36.createElement(InvitationAuthenticator, {
|
|
3183
3268
|
send,
|
|
3184
3269
|
Kind: "Space",
|
|
3185
3270
|
invitationId: invitationIds?.Space,
|
|
3271
|
+
authMethod: invitationAuthMethods?.Space,
|
|
3186
3272
|
active: activeView === "space invitation authenticator",
|
|
3187
3273
|
onInvitationCancel: onSpaceInvitationCancel,
|
|
3188
3274
|
onInvitationAuthenticate: onSpaceInvitationAuthenticate,
|
|
3189
3275
|
...failed.has("Space") && {
|
|
3190
3276
|
failed: true
|
|
3191
3277
|
}
|
|
3192
|
-
})), /* @__PURE__ */ React38.createElement(Viewport.View, {
|
|
3193
|
-
classNames: stepStyles,
|
|
3194
|
-
id: "space invitation accepted"
|
|
3195
|
-
}, /* @__PURE__ */ React38.createElement(InvitationAccepted, {
|
|
3196
|
-
send,
|
|
3197
|
-
Kind: "Space",
|
|
3198
|
-
active: activeView === "space invitation accepted",
|
|
3199
|
-
doneActionParent,
|
|
3200
|
-
onDone: onSpaceDone
|
|
3201
3278
|
})))));
|
|
3202
3279
|
};
|
|
3203
3280
|
var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition = "default", initialInvitationCode, exitActionParent, onExit, doneActionParent, onDone: propsOnDone, onCancelResetStorage }) => {
|
|
3204
|
-
const client =
|
|
3281
|
+
const client = useClient8();
|
|
3205
3282
|
const identity = useIdentity2();
|
|
3206
3283
|
const { hasIosKeyboard } = useThemeContext5();
|
|
3207
3284
|
const titleId = useId8("joinPanel__heading", propsTitleId);
|
|
@@ -3217,11 +3294,11 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3217
3294
|
}
|
|
3218
3295
|
}
|
|
3219
3296
|
});
|
|
3220
|
-
|
|
3297
|
+
useEffect6(() => {
|
|
3221
3298
|
const subscription = joinService.subscribe((state) => {
|
|
3222
|
-
|
|
3223
|
-
F:
|
|
3224
|
-
L:
|
|
3299
|
+
log9("[state]", state, {
|
|
3300
|
+
F: __dxlog_file10,
|
|
3301
|
+
L: 210,
|
|
3225
3302
|
S: void 0,
|
|
3226
3303
|
C: (f, a) => f(...a)
|
|
3227
3304
|
});
|
|
@@ -3230,7 +3307,7 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3230
3307
|
}, [
|
|
3231
3308
|
joinService
|
|
3232
3309
|
]);
|
|
3233
|
-
|
|
3310
|
+
useEffect6(() => {
|
|
3234
3311
|
const stateStack = joinState.configuration[0].id.split(".");
|
|
3235
3312
|
const innermostState = stateStack[stateStack.length - 1];
|
|
3236
3313
|
const autoFocusValue = innermostState === "finishingJoining" ? "successSpaceInvitation" : innermostState;
|
|
@@ -3363,6 +3440,18 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3363
3440
|
}, [
|
|
3364
3441
|
joinState
|
|
3365
3442
|
]);
|
|
3443
|
+
useEffect6(() => {
|
|
3444
|
+
switch (activeView) {
|
|
3445
|
+
case "halo invitation accepted":
|
|
3446
|
+
onHaloDone();
|
|
3447
|
+
break;
|
|
3448
|
+
case "space invitation accepted":
|
|
3449
|
+
onSpaceDone();
|
|
3450
|
+
break;
|
|
3451
|
+
}
|
|
3452
|
+
}, [
|
|
3453
|
+
activeView
|
|
3454
|
+
]);
|
|
3366
3455
|
const failed = useMemo4(() => {
|
|
3367
3456
|
const result = /* @__PURE__ */ new Set();
|
|
3368
3457
|
switch (true) {
|
|
@@ -3405,6 +3494,12 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3405
3494
|
}), [
|
|
3406
3495
|
joinState
|
|
3407
3496
|
]);
|
|
3497
|
+
const invitationAuthMethods = useMemo4(() => ({
|
|
3498
|
+
Halo: joinState.context.halo.invitationObservable?.get().authMethod,
|
|
3499
|
+
Space: joinState.context.space.invitationObservable?.get().authMethod
|
|
3500
|
+
}), [
|
|
3501
|
+
joinState
|
|
3502
|
+
]);
|
|
3408
3503
|
const invitationIds = useMemo4(() => ({
|
|
3409
3504
|
Halo: joinState.context.halo.invitationObservable?.get().invitationId,
|
|
3410
3505
|
Space: joinState.context.space.invitationObservable?.get().invitationId
|
|
@@ -3447,7 +3542,7 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3447
3542
|
client,
|
|
3448
3543
|
joinSend
|
|
3449
3544
|
]);
|
|
3450
|
-
return /* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ React36.createElement(JoinPanelImpl, {
|
|
3451
3546
|
titleId,
|
|
3452
3547
|
mode,
|
|
3453
3548
|
send: joinSend,
|
|
@@ -3461,6 +3556,7 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3461
3556
|
unredeemedCodes,
|
|
3462
3557
|
invitationIds,
|
|
3463
3558
|
invitationStates,
|
|
3559
|
+
invitationAuthMethods,
|
|
3464
3560
|
succeededKeys,
|
|
3465
3561
|
identity,
|
|
3466
3562
|
onExit,
|
|
@@ -3489,16 +3585,16 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3489
3585
|
|
|
3490
3586
|
// packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx
|
|
3491
3587
|
import { Planet } from "@phosphor-icons/react";
|
|
3492
|
-
import
|
|
3493
|
-
import { log as
|
|
3588
|
+
import React38, { useEffect as useEffect7, useMemo as useMemo5 } from "react";
|
|
3589
|
+
import { log as log12 } from "@dxos/log";
|
|
3494
3590
|
import { useInvitationStatus as useInvitationStatus3 } from "@dxos/react-client/invitations";
|
|
3495
|
-
import {
|
|
3591
|
+
import { useId as useId9, useTranslation as useTranslation22 } from "@dxos/react-ui";
|
|
3496
3592
|
|
|
3497
3593
|
// packages/sdk/shell/src/panels/SpacePanel/spaceMachine.ts
|
|
3498
3594
|
import { useMachine as useMachine3 } from "@xstate/react";
|
|
3499
3595
|
import { assign as assign3, createMachine as createMachine3 } from "xstate";
|
|
3500
|
-
import { log as
|
|
3501
|
-
var
|
|
3596
|
+
import { log as log10 } from "@dxos/log";
|
|
3597
|
+
var __dxlog_file11 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/SpacePanel/spaceMachine.ts";
|
|
3502
3598
|
var spaceMachine = createMachine3({
|
|
3503
3599
|
id: "space",
|
|
3504
3600
|
predictableActionArguments: true,
|
|
@@ -3535,11 +3631,11 @@ var spaceMachine = createMachine3({
|
|
|
3535
3631
|
invitation: () => void 0
|
|
3536
3632
|
}),
|
|
3537
3633
|
log: (context, event) => {
|
|
3538
|
-
|
|
3634
|
+
log10("[transition]", {
|
|
3539
3635
|
event,
|
|
3540
3636
|
context
|
|
3541
3637
|
}, {
|
|
3542
|
-
F:
|
|
3638
|
+
F: __dxlog_file11,
|
|
3543
3639
|
L: 53,
|
|
3544
3640
|
S: void 0,
|
|
3545
3641
|
C: (f, a) => f(...a)
|
|
@@ -3558,23 +3654,23 @@ var useSpaceMachine = (options) => {
|
|
|
3558
3654
|
|
|
3559
3655
|
// packages/sdk/shell/src/panels/SpacePanel/steps/SpaceManager.tsx
|
|
3560
3656
|
import { Placeholder as Placeholder2, UserPlus, UsersThree } from "@phosphor-icons/react";
|
|
3561
|
-
import
|
|
3562
|
-
import { log as
|
|
3657
|
+
import React37, { useCallback as useCallback7, useState as useState12 } from "react";
|
|
3658
|
+
import { log as log11 } from "@dxos/log";
|
|
3563
3659
|
import { useConfig } from "@dxos/react-client";
|
|
3564
3660
|
import { useSpaceInvitations as useSpaceInvitations2 } from "@dxos/react-client/echo";
|
|
3565
|
-
import { Invitation as
|
|
3566
|
-
import { ScrollArea, useTranslation as
|
|
3567
|
-
import { descriptionText as
|
|
3568
|
-
var
|
|
3661
|
+
import { Invitation as Invitation8, InvitationEncoder as InvitationEncoder4 } from "@dxos/react-client/invitations";
|
|
3662
|
+
import { ScrollArea, useTranslation as useTranslation21 } from "@dxos/react-ui";
|
|
3663
|
+
import { descriptionText as descriptionText12, mx as mx24 } from "@dxos/react-ui-theme";
|
|
3664
|
+
var __dxlog_file12 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/SpacePanel/steps/SpaceManager.tsx";
|
|
3569
3665
|
var activeActionKey = "dxos:react-shell/space-manager/active-action";
|
|
3570
3666
|
var handleInvitationEvent = (invitation, subscription) => {
|
|
3571
3667
|
const invitationCode = InvitationEncoder4.encode(invitation);
|
|
3572
|
-
if (invitation.state ===
|
|
3573
|
-
|
|
3668
|
+
if (invitation.state === Invitation8.State.CONNECTING) {
|
|
3669
|
+
log11.info(JSON.stringify({
|
|
3574
3670
|
invitationCode,
|
|
3575
3671
|
authCode: invitation.authCode
|
|
3576
3672
|
}), void 0, {
|
|
3577
|
-
F:
|
|
3673
|
+
F: __dxlog_file12,
|
|
3578
3674
|
L: 40,
|
|
3579
3675
|
S: void 0,
|
|
3580
3676
|
C: (f, a) => f(...a)
|
|
@@ -3584,7 +3680,7 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
3584
3680
|
};
|
|
3585
3681
|
var SpaceManager = (props) => {
|
|
3586
3682
|
const { space, target } = props;
|
|
3587
|
-
const { t } =
|
|
3683
|
+
const { t } = useTranslation21("os");
|
|
3588
3684
|
const config = useConfig();
|
|
3589
3685
|
const invitations = useSpaceInvitations2(space?.key);
|
|
3590
3686
|
const inviteActions = {
|
|
@@ -3594,8 +3690,8 @@ var SpaceManager = (props) => {
|
|
|
3594
3690
|
icon: UserPlus,
|
|
3595
3691
|
onClick: useCallback7(() => {
|
|
3596
3692
|
const invitation = space.share?.({
|
|
3597
|
-
type:
|
|
3598
|
-
authMethod:
|
|
3693
|
+
type: Invitation8.Type.INTERACTIVE,
|
|
3694
|
+
authMethod: Invitation8.AuthMethod.SHARED_SECRET,
|
|
3599
3695
|
multiUse: false,
|
|
3600
3696
|
target
|
|
3601
3697
|
});
|
|
@@ -3612,8 +3708,8 @@ var SpaceManager = (props) => {
|
|
|
3612
3708
|
icon: UsersThree,
|
|
3613
3709
|
onClick: useCallback7(() => {
|
|
3614
3710
|
const invitation = space.share?.({
|
|
3615
|
-
type:
|
|
3616
|
-
authMethod:
|
|
3711
|
+
type: Invitation8.Type.DELEGATED,
|
|
3712
|
+
authMethod: Invitation8.AuthMethod.KNOWN_PUBLIC_KEY,
|
|
3617
3713
|
multiUse: true,
|
|
3618
3714
|
target
|
|
3619
3715
|
});
|
|
@@ -3625,7 +3721,7 @@ var SpaceManager = (props) => {
|
|
|
3625
3721
|
])
|
|
3626
3722
|
}
|
|
3627
3723
|
};
|
|
3628
|
-
return /* @__PURE__ */
|
|
3724
|
+
return /* @__PURE__ */ React37.createElement(SpaceManagerImpl, {
|
|
3629
3725
|
...props,
|
|
3630
3726
|
invitations,
|
|
3631
3727
|
inviteActions
|
|
@@ -3634,7 +3730,7 @@ var SpaceManager = (props) => {
|
|
|
3634
3730
|
var headingFragment = "pis-3 pie-1 plb-1 mbe-1 font-medium";
|
|
3635
3731
|
var SpaceManagerImpl = (props) => {
|
|
3636
3732
|
const { active, space, createInvitationUrl, send, inviteActions: propsInviteActions, invitations, showInactiveInvitations, SpaceMemberList: SpaceMemberListComponent = SpaceMemberList, InvitationList: InvitationListComponent = InvitationList } = props;
|
|
3637
|
-
const { t } =
|
|
3733
|
+
const { t } = useTranslation21("os");
|
|
3638
3734
|
const inviteActions = propsInviteActions ?? {
|
|
3639
3735
|
noopInvite: {
|
|
3640
3736
|
label: t("create space invitation label"),
|
|
@@ -3650,28 +3746,28 @@ var SpaceManagerImpl = (props) => {
|
|
|
3650
3746
|
localStorage.setItem(activeActionKey, nextAction);
|
|
3651
3747
|
};
|
|
3652
3748
|
const visibleInvitations = showInactiveInvitations ? invitations : invitations?.filter((invitation) => ![
|
|
3653
|
-
|
|
3749
|
+
Invitation8.State.CANCELLED
|
|
3654
3750
|
].includes(invitation.get().state));
|
|
3655
|
-
return /* @__PURE__ */
|
|
3751
|
+
return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(ScrollArea.Root, {
|
|
3656
3752
|
classNames: "grow shrink basis-28 -mli-2"
|
|
3657
|
-
}, /* @__PURE__ */
|
|
3753
|
+
}, /* @__PURE__ */ React37.createElement(ScrollArea.Viewport, {
|
|
3658
3754
|
classNames: "is-full pie-2"
|
|
3659
|
-
}, !!visibleInvitations?.length && /* @__PURE__ */
|
|
3660
|
-
className: mx24(headingFragment,
|
|
3661
|
-
}, t("invitation list heading")), /* @__PURE__ */
|
|
3755
|
+
}, !!visibleInvitations?.length && /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement("h3", {
|
|
3756
|
+
className: mx24(headingFragment, descriptionText12)
|
|
3757
|
+
}, t("invitation list heading")), /* @__PURE__ */ React37.createElement(InvitationListComponent, {
|
|
3662
3758
|
className: "mb-2",
|
|
3663
3759
|
send,
|
|
3664
3760
|
invitations: visibleInvitations ?? [],
|
|
3665
3761
|
onClickRemove: (invitation) => invitation.cancel(),
|
|
3666
3762
|
createInvitationUrl
|
|
3667
|
-
}), /* @__PURE__ */
|
|
3668
|
-
className: mx24(headingFragment,
|
|
3669
|
-
}, t("space member list heading"))), /* @__PURE__ */
|
|
3763
|
+
}), /* @__PURE__ */ React37.createElement("h3", {
|
|
3764
|
+
className: mx24(headingFragment, descriptionText12, "mbs-2")
|
|
3765
|
+
}, t("space member list heading"))), /* @__PURE__ */ React37.createElement(SpaceMemberListComponent, {
|
|
3670
3766
|
spaceKey: space.key,
|
|
3671
3767
|
includeSelf: true
|
|
3672
|
-
})), /* @__PURE__ */
|
|
3768
|
+
})), /* @__PURE__ */ React37.createElement(ScrollArea.Scrollbar, {
|
|
3673
3769
|
orientation: "vertical"
|
|
3674
|
-
}, /* @__PURE__ */
|
|
3770
|
+
}, /* @__PURE__ */ React37.createElement(ScrollArea.Thumb, null))), /* @__PURE__ */ React37.createElement(Actions, null, /* @__PURE__ */ React37.createElement(BifurcatedAction, {
|
|
3675
3771
|
disabled: !active,
|
|
3676
3772
|
actions: inviteActions,
|
|
3677
3773
|
activeAction,
|
|
@@ -3681,49 +3777,47 @@ var SpaceManagerImpl = (props) => {
|
|
|
3681
3777
|
};
|
|
3682
3778
|
|
|
3683
3779
|
// packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx
|
|
3684
|
-
var
|
|
3780
|
+
var __dxlog_file13 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx";
|
|
3685
3781
|
var SpacePanelHeading = ({ titleId, space, onDone }) => {
|
|
3686
|
-
const { t } =
|
|
3782
|
+
const { t } = useTranslation22("os");
|
|
3687
3783
|
const name = space.properties.name;
|
|
3688
|
-
return /* @__PURE__ */
|
|
3784
|
+
return /* @__PURE__ */ React38.createElement(Heading, {
|
|
3689
3785
|
titleId,
|
|
3690
3786
|
title: t("space panel heading"),
|
|
3691
|
-
corner: /* @__PURE__ */
|
|
3787
|
+
corner: /* @__PURE__ */ React38.createElement(CloseButton, {
|
|
3692
3788
|
"data-testid": "identity-panel-done",
|
|
3693
3789
|
onDone
|
|
3694
3790
|
})
|
|
3695
|
-
}, /* @__PURE__ */
|
|
3791
|
+
}, /* @__PURE__ */ React38.createElement("div", {
|
|
3696
3792
|
role: "none",
|
|
3697
3793
|
className: "flex gap-4 items-center justify-center mlb-4"
|
|
3698
|
-
}, /* @__PURE__ */
|
|
3794
|
+
}, /* @__PURE__ */ React38.createElement(Planet, {
|
|
3699
3795
|
size: 32,
|
|
3700
3796
|
weight: "light"
|
|
3701
|
-
}), /* @__PURE__ */
|
|
3797
|
+
}), /* @__PURE__ */ React38.createElement("div", {
|
|
3702
3798
|
className: "block text-start font-light text-xl"
|
|
3703
3799
|
}, name ?? space.key.truncate())));
|
|
3704
3800
|
};
|
|
3705
3801
|
var SpacePanelImpl = (props) => {
|
|
3706
3802
|
const { titleId, activeView, space, target, SpaceManager: SpaceManagerComponent = SpaceManager, InvitationManager: InvitationManagerComponent = InvitationManager, ...rest } = props;
|
|
3707
|
-
return /* @__PURE__ */
|
|
3708
|
-
density: "fine"
|
|
3709
|
-
}, /* @__PURE__ */ React40.createElement(SpacePanelHeading, {
|
|
3803
|
+
return /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(SpacePanelHeading, {
|
|
3710
3804
|
...rest,
|
|
3711
3805
|
titleId,
|
|
3712
3806
|
space
|
|
3713
|
-
}), /* @__PURE__ */
|
|
3807
|
+
}), /* @__PURE__ */ React38.createElement(Viewport.Root, {
|
|
3714
3808
|
activeView
|
|
3715
|
-
}, /* @__PURE__ */
|
|
3809
|
+
}, /* @__PURE__ */ React38.createElement(Viewport.Views, null, /* @__PURE__ */ React38.createElement(Viewport.View, {
|
|
3716
3810
|
id: "space manager",
|
|
3717
3811
|
classNames: stepStyles
|
|
3718
|
-
}, /* @__PURE__ */
|
|
3812
|
+
}, /* @__PURE__ */ React38.createElement(SpaceManagerComponent, {
|
|
3719
3813
|
active: activeView === "space manager",
|
|
3720
3814
|
space,
|
|
3721
3815
|
target,
|
|
3722
3816
|
...rest
|
|
3723
|
-
})), /* @__PURE__ */
|
|
3817
|
+
})), /* @__PURE__ */ React38.createElement(Viewport.View, {
|
|
3724
3818
|
id: "space invitation manager",
|
|
3725
3819
|
classNames: stepStyles
|
|
3726
|
-
}, /* @__PURE__ */
|
|
3820
|
+
}, /* @__PURE__ */ React38.createElement(InvitationManagerComponent, {
|
|
3727
3821
|
active: activeView === "space invitation manager",
|
|
3728
3822
|
...rest,
|
|
3729
3823
|
invitationUrl: props.invitationUrl
|
|
@@ -3731,7 +3825,7 @@ var SpacePanelImpl = (props) => {
|
|
|
3731
3825
|
};
|
|
3732
3826
|
var SpacePanelWithInvitationImpl = ({ invitation, ...props }) => {
|
|
3733
3827
|
const invitationStatus = useInvitationStatus3(invitation);
|
|
3734
|
-
return /* @__PURE__ */
|
|
3828
|
+
return /* @__PURE__ */ React38.createElement(SpacePanelImpl, {
|
|
3735
3829
|
...props,
|
|
3736
3830
|
...invitationStatus,
|
|
3737
3831
|
invitationUrl: props.createInvitationUrl(invitationStatus.invitationCode)
|
|
@@ -3744,10 +3838,10 @@ var SpacePanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => code,
|
|
|
3744
3838
|
space: props.space
|
|
3745
3839
|
}
|
|
3746
3840
|
});
|
|
3747
|
-
|
|
3841
|
+
useEffect7(() => {
|
|
3748
3842
|
const subscription = spaceService.subscribe((state) => {
|
|
3749
|
-
|
|
3750
|
-
F:
|
|
3843
|
+
log12("[state]", state, {
|
|
3844
|
+
F: __dxlog_file13,
|
|
3751
3845
|
L: 94,
|
|
3752
3846
|
S: void 0,
|
|
3753
3847
|
C: (f, a) => f(...a)
|
|
@@ -3778,24 +3872,24 @@ var SpacePanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => code,
|
|
|
3778
3872
|
};
|
|
3779
3873
|
return spaceState.context.invitation ? (
|
|
3780
3874
|
// TODO(wittjosiah): Unused? Remove?
|
|
3781
|
-
/* @__PURE__ */
|
|
3875
|
+
/* @__PURE__ */ React38.createElement(SpacePanelWithInvitationImpl, {
|
|
3782
3876
|
...implProps,
|
|
3783
3877
|
invitation: spaceState.context.invitation
|
|
3784
3878
|
})
|
|
3785
|
-
) : /* @__PURE__ */
|
|
3879
|
+
) : /* @__PURE__ */ React38.createElement(SpacePanelImpl, implProps);
|
|
3786
3880
|
};
|
|
3787
3881
|
|
|
3788
3882
|
// packages/sdk/shell/src/panels/StatusPanel/StatusPanel.tsx
|
|
3789
|
-
import
|
|
3790
|
-
import { Status, useTranslation as
|
|
3883
|
+
import React39 from "react";
|
|
3884
|
+
import { Status, useTranslation as useTranslation23 } from "@dxos/react-ui";
|
|
3791
3885
|
var StatusPanel = ({ titleId }) => {
|
|
3792
|
-
const { t } =
|
|
3793
|
-
return /* @__PURE__ */
|
|
3886
|
+
const { t } = useTranslation23("os");
|
|
3887
|
+
return /* @__PURE__ */ React39.createElement("div", {
|
|
3794
3888
|
className: "grid place-items-center p-2 gap-2"
|
|
3795
|
-
}, /* @__PURE__ */
|
|
3889
|
+
}, /* @__PURE__ */ React39.createElement("p", {
|
|
3796
3890
|
id: titleId,
|
|
3797
3891
|
className: "font-medium text-center"
|
|
3798
|
-
}, t("resetting message")), /* @__PURE__ */
|
|
3892
|
+
}, t("resetting message")), /* @__PURE__ */ React39.createElement(Status, {
|
|
3799
3893
|
indeterminate: true
|
|
3800
3894
|
}, t("resetting message")));
|
|
3801
3895
|
};
|
|
@@ -3803,102 +3897,102 @@ var StatusPanel = ({ titleId }) => {
|
|
|
3803
3897
|
// packages/sdk/shell/src/composites/IdentityDialog/IdentityDialog.tsx
|
|
3804
3898
|
var IdentityDialog = (props) => {
|
|
3805
3899
|
const titleId = useId10("identityDialog__title", props.title);
|
|
3806
|
-
return /* @__PURE__ */
|
|
3900
|
+
return /* @__PURE__ */ React40.createElement(Dialog.Root, {
|
|
3807
3901
|
defaultOpen: true,
|
|
3808
3902
|
onOpenChange: (open) => open || props.onDone?.()
|
|
3809
|
-
}, /* @__PURE__ */
|
|
3903
|
+
}, /* @__PURE__ */ React40.createElement(Dialog.Portal, null, /* @__PURE__ */ React40.createElement(Dialog.Overlay, null, /* @__PURE__ */ React40.createElement(Dialog.Content, {
|
|
3810
3904
|
"aria-labelledby": titleId,
|
|
3811
3905
|
onOpenAutoFocus: (e) => e.preventDefault()
|
|
3812
|
-
}, /* @__PURE__ */
|
|
3906
|
+
}, /* @__PURE__ */ React40.createElement(ClipboardProvider, null, /* @__PURE__ */ React40.createElement(IdentityPanel, {
|
|
3813
3907
|
...props,
|
|
3814
3908
|
titleId,
|
|
3815
|
-
doneActionParent: /* @__PURE__ */
|
|
3909
|
+
doneActionParent: /* @__PURE__ */ React40.createElement(Dialog.Close, {
|
|
3816
3910
|
asChild: true
|
|
3817
3911
|
})
|
|
3818
3912
|
}))))));
|
|
3819
3913
|
};
|
|
3820
3914
|
|
|
3821
3915
|
// packages/sdk/shell/src/composites/JoinDialog/JoinDialog.tsx
|
|
3822
|
-
import
|
|
3916
|
+
import React41 from "react";
|
|
3823
3917
|
import { AlertDialog, useId as useId11, useVisualViewport } from "@dxos/react-ui";
|
|
3824
3918
|
var JoinDialog = (joinPanelProps) => {
|
|
3825
3919
|
const titleId = useId11("joinDialog__title");
|
|
3826
3920
|
const { height } = useVisualViewport();
|
|
3827
|
-
return /* @__PURE__ */
|
|
3921
|
+
return /* @__PURE__ */ React41.createElement(AlertDialog.Root, {
|
|
3828
3922
|
defaultOpen: true,
|
|
3829
3923
|
onOpenChange: (open) => open || (joinPanelProps.onExit ? joinPanelProps.onExit() : joinPanelProps.onDone?.(null))
|
|
3830
|
-
}, /* @__PURE__ */
|
|
3924
|
+
}, /* @__PURE__ */ React41.createElement(AlertDialog.Portal, null, /* @__PURE__ */ React41.createElement(AlertDialog.Overlay, {
|
|
3831
3925
|
classNames: "backdrop-blur",
|
|
3832
3926
|
...height && {
|
|
3833
3927
|
style: {
|
|
3834
3928
|
blockSize: `${height}px`
|
|
3835
3929
|
}
|
|
3836
3930
|
}
|
|
3837
|
-
}, /* @__PURE__ */
|
|
3931
|
+
}, /* @__PURE__ */ React41.createElement(AlertDialog.Content, {
|
|
3838
3932
|
"aria-labelledby": titleId
|
|
3839
|
-
}, /* @__PURE__ */
|
|
3933
|
+
}, /* @__PURE__ */ React41.createElement(JoinPanel, {
|
|
3840
3934
|
...joinPanelProps,
|
|
3841
3935
|
titleId,
|
|
3842
|
-
exitActionParent: /* @__PURE__ */
|
|
3936
|
+
exitActionParent: /* @__PURE__ */ React41.createElement(AlertDialog.Cancel, {
|
|
3843
3937
|
asChild: true
|
|
3844
3938
|
}),
|
|
3845
|
-
doneActionParent: /* @__PURE__ */
|
|
3939
|
+
doneActionParent: /* @__PURE__ */ React41.createElement(AlertDialog.Action, {
|
|
3846
3940
|
asChild: true
|
|
3847
3941
|
})
|
|
3848
3942
|
})))));
|
|
3849
3943
|
};
|
|
3850
3944
|
|
|
3851
3945
|
// packages/sdk/shell/src/composites/Shell/run-shell.tsx
|
|
3852
|
-
import
|
|
3946
|
+
import React45, { StrictMode } from "react";
|
|
3853
3947
|
import { createRoot } from "react-dom/client";
|
|
3854
3948
|
import { DEFAULT_CLIENT_CHANNEL, DEFAULT_SHELL_CHANNEL } from "@dxos/client-protocol";
|
|
3855
3949
|
import { AgentHostingProvider, ClientProvider, ClientServicesProxy, Config, ShellDisplay as ShellDisplay2 } from "@dxos/react-client";
|
|
3856
|
-
import { Button as Button11, Dialog as Dialog3, ThemeProvider, Tooltip as Tooltip8, useTranslation as
|
|
3950
|
+
import { Button as Button11, Dialog as Dialog3, ThemeProvider, Tooltip as Tooltip8, useTranslation as useTranslation24 } from "@dxos/react-ui";
|
|
3857
3951
|
import { defaultTx } from "@dxos/react-ui-theme";
|
|
3858
3952
|
import { createIFramePort } from "@dxos/rpc-tunnel";
|
|
3859
3953
|
|
|
3860
3954
|
// packages/sdk/shell/src/composites/Shell/Shell.tsx
|
|
3861
|
-
import
|
|
3862
|
-
import { log as
|
|
3863
|
-
import { useClient as
|
|
3955
|
+
import React44, { useEffect as useEffect8, useState as useState13 } from "react";
|
|
3956
|
+
import { log as log13 } from "@dxos/log";
|
|
3957
|
+
import { useClient as useClient9 } from "@dxos/react-client";
|
|
3864
3958
|
import { ShellDisplay, ShellLayout } from "@dxos/react-client";
|
|
3865
3959
|
import { useSpace as useSpace2 } from "@dxos/react-client/echo";
|
|
3866
3960
|
|
|
3867
3961
|
// packages/sdk/shell/src/composites/SpaceDialog/SpaceDialog.tsx
|
|
3868
|
-
import
|
|
3962
|
+
import React42 from "react";
|
|
3869
3963
|
import { Dialog as Dialog2, useId as useId12 } from "@dxos/react-ui";
|
|
3870
3964
|
var SpaceDialog = (spacePanelProps) => {
|
|
3871
3965
|
const titleId = useId12("spaceDialog__title");
|
|
3872
|
-
return /* @__PURE__ */
|
|
3966
|
+
return /* @__PURE__ */ React42.createElement(Dialog2.Root, {
|
|
3873
3967
|
defaultOpen: true,
|
|
3874
3968
|
onOpenChange: (open) => open || spacePanelProps.onDone?.()
|
|
3875
|
-
}, /* @__PURE__ */
|
|
3969
|
+
}, /* @__PURE__ */ React42.createElement(Dialog2.Portal, null, /* @__PURE__ */ React42.createElement(Dialog2.Overlay, null, /* @__PURE__ */ React42.createElement(Dialog2.Content, {
|
|
3876
3970
|
"aria-labelledby": titleId
|
|
3877
|
-
}, /* @__PURE__ */
|
|
3971
|
+
}, /* @__PURE__ */ React42.createElement(ClipboardProvider, null, /* @__PURE__ */ React42.createElement(SpacePanel, {
|
|
3878
3972
|
...spacePanelProps,
|
|
3879
3973
|
titleId,
|
|
3880
|
-
doneActionParent: /* @__PURE__ */
|
|
3974
|
+
doneActionParent: /* @__PURE__ */ React42.createElement(Dialog2.Close, {
|
|
3881
3975
|
asChild: true
|
|
3882
3976
|
})
|
|
3883
3977
|
}))))));
|
|
3884
3978
|
};
|
|
3885
3979
|
|
|
3886
3980
|
// packages/sdk/shell/src/composites/StatusDialog/StatusDialog.tsx
|
|
3887
|
-
import
|
|
3981
|
+
import React43 from "react";
|
|
3888
3982
|
import { AlertDialog as AlertDialog2, useId as useId13 } from "@dxos/react-ui";
|
|
3889
3983
|
var StatusDialog = () => {
|
|
3890
3984
|
const titleId = useId13("statusDialog__title");
|
|
3891
|
-
return /* @__PURE__ */
|
|
3985
|
+
return /* @__PURE__ */ React43.createElement(AlertDialog2.Root, {
|
|
3892
3986
|
open: true
|
|
3893
|
-
}, /* @__PURE__ */
|
|
3987
|
+
}, /* @__PURE__ */ React43.createElement(AlertDialog2.Portal, null, /* @__PURE__ */ React43.createElement(AlertDialog2.Overlay, null, /* @__PURE__ */ React43.createElement(AlertDialog2.Content, {
|
|
3894
3988
|
"aria-labelledby": titleId
|
|
3895
|
-
}, /* @__PURE__ */
|
|
3989
|
+
}, /* @__PURE__ */ React43.createElement(StatusPanel, {
|
|
3896
3990
|
titleId
|
|
3897
3991
|
})))));
|
|
3898
3992
|
};
|
|
3899
3993
|
|
|
3900
3994
|
// packages/sdk/shell/src/composites/Shell/Shell.tsx
|
|
3901
|
-
var
|
|
3995
|
+
var __dxlog_file14 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/composites/Shell/Shell.tsx";
|
|
3902
3996
|
var blurActiveElement = () => document.activeElement?.blur?.();
|
|
3903
3997
|
var Shell = ({ runtime }) => {
|
|
3904
3998
|
const [{ layout, invitationCode, spaceKey, spaceId, target }, setLayout] = useState13({
|
|
@@ -3913,7 +4007,7 @@ var Shell = ({ runtime }) => {
|
|
|
3913
4007
|
deviceInvitationParam: runtime.deviceInvitationParam,
|
|
3914
4008
|
spaceInvitationParam: runtime.spaceInvitationParam
|
|
3915
4009
|
});
|
|
3916
|
-
const client =
|
|
4010
|
+
const client = useClient9();
|
|
3917
4011
|
const space = useSpace2(spaceId ?? spaceKey);
|
|
3918
4012
|
const createDeviceInvitationUrl = (invitationCode2) => {
|
|
3919
4013
|
const baseUrl = new URL(invitationUrl);
|
|
@@ -3925,7 +4019,7 @@ var Shell = ({ runtime }) => {
|
|
|
3925
4019
|
baseUrl.searchParams.set(spaceInvitationParam, invitationCode2);
|
|
3926
4020
|
return baseUrl.toString();
|
|
3927
4021
|
};
|
|
3928
|
-
|
|
4022
|
+
useEffect8(() => {
|
|
3929
4023
|
const unsubscribeLayout = runtime.layoutUpdate.on((request) => setLayout(request));
|
|
3930
4024
|
const unsubscribeInvitationUrl = runtime.invitationUrlUpdate.on((request) => setInvitationUrl(request));
|
|
3931
4025
|
return () => {
|
|
@@ -3935,10 +4029,10 @@ var Shell = ({ runtime }) => {
|
|
|
3935
4029
|
}, [
|
|
3936
4030
|
runtime
|
|
3937
4031
|
]);
|
|
3938
|
-
|
|
4032
|
+
useEffect8(() => {
|
|
3939
4033
|
if (layout === ShellLayout.SPACE && !space) {
|
|
3940
|
-
|
|
3941
|
-
F:
|
|
4034
|
+
log13.warn("No space found for shell space invitations.", void 0, {
|
|
4035
|
+
F: __dxlog_file14,
|
|
3942
4036
|
L: 67,
|
|
3943
4037
|
S: void 0,
|
|
3944
4038
|
C: (f, a) => f(...a)
|
|
@@ -3960,19 +4054,19 @@ var Shell = ({ runtime }) => {
|
|
|
3960
4054
|
]);
|
|
3961
4055
|
switch (layout) {
|
|
3962
4056
|
case ShellLayout.STATUS:
|
|
3963
|
-
return /* @__PURE__ */
|
|
4057
|
+
return /* @__PURE__ */ React44.createElement(StatusDialog, null);
|
|
3964
4058
|
case ShellLayout.INITIALIZE_IDENTITY:
|
|
3965
4059
|
case ShellLayout.INITIALIZE_IDENTITY_FROM_INVITATION:
|
|
3966
|
-
return /* @__PURE__ */
|
|
4060
|
+
return /* @__PURE__ */ React44.createElement(JoinDialog, {
|
|
3967
4061
|
mode: "halo-only",
|
|
3968
4062
|
initialDisposition: layout === ShellLayout.INITIALIZE_IDENTITY_FROM_INVITATION ? "accept-halo-invitation" : "default",
|
|
3969
4063
|
initialInvitationCode: invitationCode,
|
|
3970
4064
|
onCancelResetStorage: () => runtime.setLayout({
|
|
3971
4065
|
layout: ShellLayout.IDENTITY
|
|
3972
4066
|
}),
|
|
3973
|
-
onDone: () => {
|
|
4067
|
+
onDone: async () => {
|
|
3974
4068
|
blurActiveElement();
|
|
3975
|
-
|
|
4069
|
+
await runtime.setAppContext({
|
|
3976
4070
|
display: ShellDisplay.NONE
|
|
3977
4071
|
});
|
|
3978
4072
|
runtime.setLayout({
|
|
@@ -3983,7 +4077,7 @@ var Shell = ({ runtime }) => {
|
|
|
3983
4077
|
case ShellLayout.IDENTITY:
|
|
3984
4078
|
case ShellLayout.SHARE_IDENTITY:
|
|
3985
4079
|
case ShellLayout.EDIT_PROFILE:
|
|
3986
|
-
return /* @__PURE__ */
|
|
4080
|
+
return /* @__PURE__ */ React44.createElement(IdentityDialog, {
|
|
3987
4081
|
createInvitationUrl: createDeviceInvitationUrl,
|
|
3988
4082
|
onResetStorage: async () => {
|
|
3989
4083
|
runtime.setLayout({
|
|
@@ -4000,8 +4094,10 @@ var Shell = ({ runtime }) => {
|
|
|
4000
4094
|
layout: ShellLayout.STATUS
|
|
4001
4095
|
});
|
|
4002
4096
|
await client.reset();
|
|
4003
|
-
return runtime.
|
|
4004
|
-
|
|
4097
|
+
return runtime.setAppContext({
|
|
4098
|
+
display: ShellDisplay.NONE,
|
|
4099
|
+
reset: true,
|
|
4100
|
+
target: "deviceInvitation"
|
|
4005
4101
|
});
|
|
4006
4102
|
},
|
|
4007
4103
|
onDone: async () => {
|
|
@@ -4016,7 +4112,7 @@ var Shell = ({ runtime }) => {
|
|
|
4016
4112
|
initialDisposition: layout === ShellLayout.SHARE_IDENTITY ? "manage-device-invitation" : "default"
|
|
4017
4113
|
});
|
|
4018
4114
|
case ShellLayout.SPACE:
|
|
4019
|
-
return space ? /* @__PURE__ */
|
|
4115
|
+
return space ? /* @__PURE__ */ React44.createElement(SpaceDialog, {
|
|
4020
4116
|
space,
|
|
4021
4117
|
target,
|
|
4022
4118
|
createInvitationUrl: createSpaceInvitationUrl,
|
|
@@ -4031,7 +4127,7 @@ var Shell = ({ runtime }) => {
|
|
|
4031
4127
|
}
|
|
4032
4128
|
}) : null;
|
|
4033
4129
|
case ShellLayout.JOIN_SPACE:
|
|
4034
|
-
return /* @__PURE__ */
|
|
4130
|
+
return /* @__PURE__ */ React44.createElement(JoinDialog, {
|
|
4035
4131
|
initialInvitationCode: invitationCode,
|
|
4036
4132
|
onDone: async (result) => {
|
|
4037
4133
|
blurActiveElement();
|
|
@@ -4063,10 +4159,10 @@ var Shell = ({ runtime }) => {
|
|
|
4063
4159
|
// packages/sdk/shell/src/composites/Shell/shell-runtime.ts
|
|
4064
4160
|
import { Event } from "@dxos/async";
|
|
4065
4161
|
import { appServiceBundle, shellServiceBundle } from "@dxos/client-protocol";
|
|
4066
|
-
import { invariant as
|
|
4162
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
4067
4163
|
import { ShellLayout as ShellLayout2 } from "@dxos/protocols/proto/dxos/iframe";
|
|
4068
4164
|
import { createProtoRpcPeer } from "@dxos/rpc";
|
|
4069
|
-
var
|
|
4165
|
+
var __dxlog_file15 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/composites/Shell/shell-runtime.ts";
|
|
4070
4166
|
var ShellRuntimeImpl = class {
|
|
4071
4167
|
constructor(_port) {
|
|
4072
4168
|
this._port = _port;
|
|
@@ -4122,8 +4218,8 @@ var ShellRuntimeImpl = class {
|
|
|
4122
4218
|
});
|
|
4123
4219
|
}
|
|
4124
4220
|
async setAppContext(context) {
|
|
4125
|
-
|
|
4126
|
-
F:
|
|
4221
|
+
invariant3(this._appRpc, "runtime not open", {
|
|
4222
|
+
F: __dxlog_file15,
|
|
4127
4223
|
L: 83,
|
|
4128
4224
|
S: this,
|
|
4129
4225
|
A: [
|
|
@@ -4201,7 +4297,7 @@ var os = {
|
|
|
4201
4297
|
"recover identity input label": "Type or paste your seed phrase",
|
|
4202
4298
|
"failed to create identity message": "Failed to create an identity.",
|
|
4203
4299
|
"failed to recover identity message": "Failed to recover an identity from the provided seed phrase.",
|
|
4204
|
-
"failed to authenticate message": "Incorrect
|
|
4300
|
+
"failed to authenticate message": "Incorrect code.",
|
|
4205
4301
|
"identity added label": "Created identity & added to this device:",
|
|
4206
4302
|
"join space as identity heading": "<part>as </part><part><icon/><label>{{labelValue}}</label></part>",
|
|
4207
4303
|
"error status label": "Failed",
|
|
@@ -4209,8 +4305,8 @@ var os = {
|
|
|
4209
4305
|
"cancelled status label": "Cancelled",
|
|
4210
4306
|
"init status label": "Ready to connect",
|
|
4211
4307
|
"connecting status label": "Connecting\u2026",
|
|
4212
|
-
"connected status label": "Enter
|
|
4213
|
-
"authenticating status label": "Enter
|
|
4308
|
+
"connected status label": "Enter authentication code",
|
|
4309
|
+
"authenticating status label": "Enter authentication code",
|
|
4214
4310
|
"success status label": "Success",
|
|
4215
4311
|
"cancel label": "Cancel",
|
|
4216
4312
|
"done label": "Done",
|
|
@@ -4313,7 +4409,8 @@ var os = {
|
|
|
4313
4409
|
"destroying agent label": "Stopping agent\u2026",
|
|
4314
4410
|
"getting agent label": "Checking agent status\u2026",
|
|
4315
4411
|
"agent requested label": "Agent requested",
|
|
4316
|
-
"agent requested description": "The agent service is creating an agent for you. Once the agent connects, it will display in the devices list."
|
|
4412
|
+
"agent requested description": "The agent service is creating an agent for you. Once the agent connects, it will display in the devices list.",
|
|
4413
|
+
"authenticating label": "Authenticating\u2026"
|
|
4317
4414
|
};
|
|
4318
4415
|
|
|
4319
4416
|
// packages/sdk/shell/src/translations/index.ts
|
|
@@ -4331,24 +4428,25 @@ var runShell = async (config = new Config()) => {
|
|
|
4331
4428
|
const services = new ClientServicesProxy(createIFramePort({
|
|
4332
4429
|
channel: DEFAULT_CLIENT_CHANNEL
|
|
4333
4430
|
}));
|
|
4334
|
-
createRoot(document.getElementById("root")).render(/* @__PURE__ */
|
|
4431
|
+
createRoot(document.getElementById("root")).render(/* @__PURE__ */ React45.createElement(StrictMode, null, /* @__PURE__ */ React45.createElement(ThemeProvider, {
|
|
4335
4432
|
tx: defaultTx,
|
|
4336
4433
|
resourceExtensions: [
|
|
4337
4434
|
osTranslations
|
|
4338
4435
|
]
|
|
4339
|
-
}, /* @__PURE__ */
|
|
4436
|
+
}, /* @__PURE__ */ React45.createElement(ClientProvider, {
|
|
4340
4437
|
config,
|
|
4341
|
-
services
|
|
4342
|
-
|
|
4438
|
+
services,
|
|
4439
|
+
noBanner: true
|
|
4440
|
+
}, /* @__PURE__ */ React45.createElement(ClipboardProvider, null, /* @__PURE__ */ React45.createElement(Tooltip8.Provider, null, /* @__PURE__ */ React45.createElement(AgentHostingProvider, null, /* @__PURE__ */ React45.createElement(Shell, {
|
|
4343
4441
|
runtime
|
|
4344
4442
|
}))))))));
|
|
4345
4443
|
} catch {
|
|
4346
|
-
createRoot(document.getElementById("root")).render(/* @__PURE__ */
|
|
4444
|
+
createRoot(document.getElementById("root")).render(/* @__PURE__ */ React45.createElement(StrictMode, null, /* @__PURE__ */ React45.createElement(ThemeProvider, {
|
|
4347
4445
|
tx: defaultTx,
|
|
4348
4446
|
resourceExtensions: [
|
|
4349
4447
|
osTranslations
|
|
4350
4448
|
]
|
|
4351
|
-
}, /* @__PURE__ */
|
|
4449
|
+
}, /* @__PURE__ */ React45.createElement(Fallback, {
|
|
4352
4450
|
onClose: () => runtime.setAppContext({
|
|
4353
4451
|
display: ShellDisplay2.NONE
|
|
4354
4452
|
})
|
|
@@ -4356,22 +4454,22 @@ var runShell = async (config = new Config()) => {
|
|
|
4356
4454
|
}
|
|
4357
4455
|
};
|
|
4358
4456
|
var Fallback = ({ onClose }) => {
|
|
4359
|
-
const { t } =
|
|
4360
|
-
return /* @__PURE__ */
|
|
4457
|
+
const { t } = useTranslation24("os");
|
|
4458
|
+
return /* @__PURE__ */ React45.createElement(Dialog3.Root, {
|
|
4361
4459
|
modal: true,
|
|
4362
4460
|
open: true,
|
|
4363
4461
|
onOpenChange: () => onClose?.()
|
|
4364
|
-
}, /* @__PURE__ */
|
|
4462
|
+
}, /* @__PURE__ */ React45.createElement(Dialog3.Overlay, null, /* @__PURE__ */ React45.createElement(Dialog3.Content, null, /* @__PURE__ */ React45.createElement(Dialog3.Title, null, t("shell fallback title")), /* @__PURE__ */ React45.createElement(Dialog3.Close, {
|
|
4365
4463
|
asChild: true,
|
|
4366
4464
|
onClick: () => onClose?.()
|
|
4367
|
-
}, /* @__PURE__ */
|
|
4465
|
+
}, /* @__PURE__ */ React45.createElement(Button11, {
|
|
4368
4466
|
variant: "primary"
|
|
4369
4467
|
}, t("close label"))))));
|
|
4370
4468
|
};
|
|
4371
4469
|
|
|
4372
4470
|
// packages/sdk/shell/src/composites/Shell/ShellContext.tsx
|
|
4373
|
-
import
|
|
4374
|
-
import { useClient as
|
|
4471
|
+
import React46, { createContext as createContext2, useCallback as useCallback8, useContext as useContext2, useEffect as useEffect9, useMemo as useMemo6, useState as useState14 } from "react";
|
|
4472
|
+
import { useClient as useClient10, ShellDisplay as ShellDisplay3, ShellLayout as ShellLayout4 } from "@dxos/react-client";
|
|
4375
4473
|
import { useIdentity as useIdentity3 } from "@dxos/react-client/halo";
|
|
4376
4474
|
import { mx as mx25 } from "@dxos/react-ui-theme";
|
|
4377
4475
|
|
|
@@ -4428,7 +4526,7 @@ var MemoryShellRuntime = class {
|
|
|
4428
4526
|
// packages/sdk/shell/src/composites/Shell/ShellContext.tsx
|
|
4429
4527
|
var ShellContext = /* @__PURE__ */ createContext2({});
|
|
4430
4528
|
var useShell = () => {
|
|
4431
|
-
const client =
|
|
4529
|
+
const client = useClient10();
|
|
4432
4530
|
const { runtime, setDisplay } = useContext2(ShellContext);
|
|
4433
4531
|
const setLayout = async (layout, options) => {
|
|
4434
4532
|
if (runtime) {
|
|
@@ -4449,7 +4547,7 @@ var useShell = () => {
|
|
|
4449
4547
|
};
|
|
4450
4548
|
};
|
|
4451
4549
|
var ShellProvider = ({ space, deviceInvitationCode, spaceInvitationCode, onJoinedSpace, children }) => {
|
|
4452
|
-
const client =
|
|
4550
|
+
const client = useClient10();
|
|
4453
4551
|
const identity = useIdentity3();
|
|
4454
4552
|
const [display, setDisplay] = useState14(!identity || spaceInvitationCode || deviceInvitationCode ? ShellDisplay3.FULLSCREEN : ShellDisplay3.NONE);
|
|
4455
4553
|
const shellRuntime = useMemo6(() => {
|
|
@@ -4498,7 +4596,7 @@ var ShellProvider = ({ space, deviceInvitationCode, spaceInvitationCode, onJoine
|
|
|
4498
4596
|
space,
|
|
4499
4597
|
shellRuntime
|
|
4500
4598
|
]);
|
|
4501
|
-
|
|
4599
|
+
useEffect9(() => {
|
|
4502
4600
|
if (!shellRuntime) {
|
|
4503
4601
|
return;
|
|
4504
4602
|
}
|
|
@@ -4508,7 +4606,7 @@ var ShellProvider = ({ space, deviceInvitationCode, spaceInvitationCode, onJoine
|
|
|
4508
4606
|
shellRuntime,
|
|
4509
4607
|
handleKeyDown
|
|
4510
4608
|
]);
|
|
4511
|
-
|
|
4609
|
+
useEffect9(() => {
|
|
4512
4610
|
if (!shellRuntime) {
|
|
4513
4611
|
return;
|
|
4514
4612
|
}
|
|
@@ -4521,11 +4619,11 @@ var ShellProvider = ({ space, deviceInvitationCode, spaceInvitationCode, onJoine
|
|
|
4521
4619
|
}, [
|
|
4522
4620
|
shellRuntime
|
|
4523
4621
|
]);
|
|
4524
|
-
return /* @__PURE__ */
|
|
4622
|
+
return /* @__PURE__ */ React46.createElement(React46.Fragment, null, shellRuntime && /* @__PURE__ */ React46.createElement("div", {
|
|
4525
4623
|
className: mx25(display === ShellDisplay3.NONE ? "hidden" : "")
|
|
4526
|
-
}, /* @__PURE__ */
|
|
4624
|
+
}, /* @__PURE__ */ React46.createElement(Shell, {
|
|
4527
4625
|
runtime: shellRuntime
|
|
4528
|
-
})), /* @__PURE__ */
|
|
4626
|
+
})), /* @__PURE__ */ React46.createElement(ShellContext.Provider, {
|
|
4529
4627
|
value: {
|
|
4530
4628
|
runtime: shellRuntime,
|
|
4531
4629
|
setDisplay
|