@dxos/shell 0.4.10-main.c5e8686 → 0.4.10-main.c685d5c
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/{index-BhenUoML.mjs → index-Ba9TfOfV.mjs} +38 -22
- package/dist/bundle/index-Ba9TfOfV.mjs.map +1 -0
- package/dist/bundle/{index-DLLGn1Su.mjs → index-DaiI_12x.mjs} +1214 -1195
- package/dist/bundle/index-DaiI_12x.mjs.map +1 -0
- package/dist/bundle/shell.mjs +1 -1
- package/dist/bundle/shell.umd.js +38 -38
- 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 +11 -9
- package/dist/lib/browser/react.mjs.map +3 -3
- package/dist/lib/browser/testing/index.mjs +3 -2
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/types/src/components/EmojiPicker.d.ts +1 -2
- package/dist/types/src/components/EmojiPicker.d.ts.map +1 -1
- package/dist/types/src/components/EmojiPicker.js.map +1 -1
- package/dist/types/src/components/HuePicker.d.ts +1 -2
- package/dist/types/src/components/HuePicker.d.ts.map +1 -1
- package/dist/types/src/components/HuePicker.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js +9 -4
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js.map +1 -1
- package/dist/types/src/playwright/invitations.spec.js +3 -1
- package/dist/types/src/playwright/invitations.spec.js.map +1 -1
- package/dist/types/src/stories/Invitations.e2e-stories.d.ts.map +1 -1
- package/dist/types/src/stories/Invitations.e2e-stories.js +3 -0
- package/dist/types/src/stories/Invitations.e2e-stories.js.map +1 -1
- package/dist/types/src/testing/shell-manager.d.ts.map +1 -1
- package/dist/types/src/testing/shell-manager.js +3 -2
- package/dist/types/src/testing/shell-manager.js.map +1 -1
- package/package.json +22 -22
- package/src/components/EmojiPicker.tsx +2 -2
- package/src/components/HuePicker.tsx +2 -2
- package/src/panels/IdentityPanel/IdentityPanel.tsx +10 -4
- package/src/playwright/invitations.spec.ts +3 -1
- package/src/stories/Invitations.e2e-stories.tsx +3 -0
- package/src/testing/shell-manager.ts +3 -2
- package/dist/bundle/index-BhenUoML.mjs.map +0 -1
- package/dist/bundle/index-DLLGn1Su.mjs.map +0 -1
|
@@ -53,8 +53,8 @@ const IdentityHeading = ({
|
|
|
53
53
|
const fallbackValue = keyToFallback(identity.identityKey);
|
|
54
54
|
const { t } = useTranslation('os');
|
|
55
55
|
const [displayName, setDisplayName] = useState(identity.profile?.displayName ?? '');
|
|
56
|
-
const [emoji,
|
|
57
|
-
const [hue,
|
|
56
|
+
const [emoji, setEmojiDirectly] = useState<string>(getEmojiValue(identity));
|
|
57
|
+
const [hue, setHueDirectly] = useState<string>(getHueValue(identity));
|
|
58
58
|
const { textValue, setTextValue } = useClipboardContext();
|
|
59
59
|
const identityHex = identity.identityKey.toHex();
|
|
60
60
|
const copied = textValue === identityHex;
|
|
@@ -67,9 +67,15 @@ const IdentityHeading = ({
|
|
|
67
67
|
return onUpdateProfile?.(nextProfile);
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
const setEmoji = (nextEmoji: string) => {
|
|
71
|
+
setEmojiDirectly(nextEmoji);
|
|
71
72
|
void handleUpdateProfile();
|
|
72
|
-
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const setHue = (nextHue: string) => {
|
|
76
|
+
setHueDirectly(nextHue);
|
|
77
|
+
void handleUpdateProfile();
|
|
78
|
+
};
|
|
73
79
|
|
|
74
80
|
const isConnected = connectionState === ConnectionState.ONLINE;
|
|
75
81
|
|
|
@@ -15,7 +15,9 @@ test.describe('Invitations', () => {
|
|
|
15
15
|
let manager: InvitationsManager;
|
|
16
16
|
|
|
17
17
|
// TODO(wittjosiah): Storybook takes a bit to be ready for testing against.
|
|
18
|
-
test.beforeAll(async ({ browser }) => {
|
|
18
|
+
test.beforeAll(async ({ browser, browserName }) => {
|
|
19
|
+
// TODO(wittjosiah): Storybook is broken in Safari/Webkit.
|
|
20
|
+
test.skip(browserName === 'webkit');
|
|
19
21
|
test.setTimeout(60_000);
|
|
20
22
|
manager = new InvitationsManager(browser);
|
|
21
23
|
await manager.init();
|
|
@@ -216,6 +216,9 @@ const Invitations = (args: { id: number; count: number }) => {
|
|
|
216
216
|
);
|
|
217
217
|
};
|
|
218
218
|
|
|
219
|
+
// TODO(wittjosiah): This story fails to start in Safari/Webkit.
|
|
220
|
+
// The issue appears to be related to dynamic imports during client initialization.
|
|
221
|
+
// This does not seem to be a problem in other browsers nor in Safari in the app.
|
|
219
222
|
export const Default = {
|
|
220
223
|
render: (args: { id: number }) => (
|
|
221
224
|
<ClipboardProvider>
|
|
@@ -75,7 +75,7 @@ export class ShellManager extends ScopedShellManager {
|
|
|
75
75
|
await this.shell.getByTestId('device-list-item-current.options').click();
|
|
76
76
|
await this.shell.getByTestId('device-list-item-current.join-existing').click();
|
|
77
77
|
await this.shell.getByTestId('join-new-identity.reset-identity-input').fill('CONFIRM');
|
|
78
|
-
await this.shell.getByTestId('join-new-identity.reset-identity-
|
|
78
|
+
await this.shell.getByTestId('join-new-identity.reset-identity-confirm').click();
|
|
79
79
|
await this.inputInvitation('device', invitationCode, this.shell);
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -117,7 +117,8 @@ export class ShellManager extends ScopedShellManager {
|
|
|
117
117
|
|
|
118
118
|
private async _onConsoleMessage(message: ConsoleMessage) {
|
|
119
119
|
try {
|
|
120
|
-
const
|
|
120
|
+
const text = message.text();
|
|
121
|
+
const json = JSON.parse(text.slice(text.indexOf('{')));
|
|
121
122
|
if (json.invitationCode) {
|
|
122
123
|
this._invitationCode.wake(json.invitationCode);
|
|
123
124
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BhenUoML.mjs","sources":["../../../../core/mesh/websocket-rpc/dist/lib/browser/index.mjs"],"sourcesContent":["import \"@dxos/node-std/globals\";\n\n// inject-globals:@inject-globals\nimport {\n global,\n Buffer,\n process\n} from \"@dxos/node-std/inject-globals\";\n\n// packages/core/mesh/websocket-rpc/src/client.ts\nimport WebSocket from \"isomorphic-ws\";\nimport { Event, Trigger } from \"@dxos/async\";\nimport { log, logInfo } from \"@dxos/log\";\nimport { createProtoRpcPeer } from \"@dxos/rpc\";\nfunction _ts_decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\")\n r = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i = decorators.length - 1; i >= 0; i--)\n if (d = decorators[i])\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nvar __dxlog_file = \"/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/client.ts\";\nvar WebsocketRpcClient = class {\n constructor(_params) {\n this._params = _params;\n this._connectTrigger = new Trigger();\n this.connected = new Event();\n this.disconnected = new Event();\n this.error = new Event();\n this._rpc = createProtoRpcPeer({\n requested: this._params.requested,\n exposed: this._params.exposed,\n handlers: this._params.handlers,\n port: {\n send: (msg) => {\n this._socket.send(msg);\n },\n subscribe: (cb) => {\n this._socket.onmessage = async (msg) => {\n if (typeof Blob !== \"undefined\" && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data);\n }\n };\n }\n }\n });\n }\n get url() {\n return this._params.url;\n }\n async open() {\n this._socket = new WebSocket(this._params.url);\n this._socket.onopen = async () => {\n log(\"Socket open\", void 0, {\n F: __dxlog_file,\n L: 55,\n S: this,\n C: (f, a) => f(...a)\n });\n try {\n await this._rpc.open();\n log(`RPC open ${this._params.url}`, void 0, {\n F: __dxlog_file,\n L: 58,\n S: this,\n C: (f, a) => f(...a)\n });\n this.connected.emit();\n this._connectTrigger.wake();\n } catch (err) {\n this.error.emit(err);\n }\n };\n this._socket.onclose = async () => {\n log(`Disconnected ${this._params.url}`, void 0, {\n F: __dxlog_file,\n L: 67,\n S: this,\n C: (f, a) => f(...a)\n });\n this.disconnected.emit();\n await this.close();\n };\n this._socket.onerror = (event) => {\n log.error(event.message ?? \"Socket error\", {\n url: this._params.url\n }, {\n F: __dxlog_file,\n L: 73,\n S: this,\n C: (f, a) => f(...a)\n });\n const error = event.error ?? new Error(event.message);\n this.error.emit(error);\n this._connectTrigger.throw(error);\n };\n await this._connectTrigger.wait();\n }\n async close() {\n try {\n await this._rpc?.close();\n } catch (err) {\n log.catch(err, void 0, {\n F: __dxlog_file,\n L: 86,\n S: this,\n C: (f, a) => f(...a)\n });\n }\n this._socket?.close();\n }\n get rpc() {\n return this._rpc.rpc;\n }\n};\n_ts_decorate([\n logInfo\n], WebsocketRpcClient.prototype, \"url\", null);\n\n// packages/core/mesh/websocket-rpc/src/server.ts\nimport WebSocket2 from \"isomorphic-ws\";\nimport { log as log2 } from \"@dxos/log\";\nimport { createProtoRpcPeer as createProtoRpcPeer2 } from \"@dxos/rpc\";\nvar __dxlog_file2 = \"/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/server.ts\";\nvar WebsocketRpcServer = class {\n constructor(_params) {\n this._params = _params;\n }\n async open() {\n this._server = new WebSocket2.Server({\n ...this._params\n });\n this._server.on(\"connection\", async (socket, request) => {\n log2(\"connection\", {\n request\n }, {\n F: __dxlog_file2,\n L: 34,\n S: this,\n C: (f, a) => f(...a)\n });\n const info = {\n request\n };\n const { onOpen, onClose, ...options } = await this._params.onConnection(info);\n const rpc = createProtoRpcPeer2({\n ...options,\n port: {\n send: (msg) => {\n socket.send(msg);\n },\n subscribe: (cb) => {\n socket.onmessage = async (msg) => {\n if (typeof Blob !== \"undefined\" && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data);\n }\n };\n }\n }\n });\n await rpc.open();\n await onOpen?.(rpc);\n socket.onclose = async () => {\n await onClose?.(rpc);\n await rpc.close();\n };\n });\n }\n async close() {\n this._server?.close();\n }\n};\nexport {\n WebsocketRpcClient,\n WebsocketRpcServer\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["_ts_decorate","decorators","target","key","desc","r","d","i","__dxlog_file","WebsocketRpcClient","_params","Trigger","Event","createProtoRpcPeer","msg","cb","Buffer","WebSocket","log","f","a","err","event","error","_a","_b","logInfo"],"mappings":"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"}
|