@dxos/shell 0.5.1-main.d3f3a55 → 0.5.1-main.ea79cb0

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.
@@ -1,6 +1,5 @@
1
1
  import { type ShellRuntime } from '@dxos/react-client';
2
- export declare const Shell: ({ runtime, origin }: {
2
+ export declare const Shell: ({ runtime }: {
3
3
  runtime: ShellRuntime;
4
- origin: string;
5
4
  }) => JSX.Element | null;
6
5
  //# sourceMappingURL=Shell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../../../../src/composites/Shell/Shell.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAiD,KAAK,YAAY,EAAa,MAAM,oBAAoB,CAAC;AAQjH,eAAO,MAAM,KAAK;aAAoC,YAAY;YAAU,MAAM;wBA4GjF,CAAC"}
1
+ {"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../../../../src/composites/Shell/Shell.tsx"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,YAAY,EAGlB,MAAM,oBAAoB,CAAC;AAQ5B,eAAO,MAAM,KAAK;aAA4B,YAAY;wBAoIzD,CAAC"}
@@ -35,17 +35,37 @@ const IdentityDialog_1 = require("../IdentityDialog");
35
35
  const JoinDialog_1 = require("../JoinDialog");
36
36
  const SpaceDialog_1 = require("../SpaceDialog");
37
37
  const StatusDialog_1 = require("../StatusDialog");
38
- const Shell = ({ runtime, origin }) => {
38
+ const Shell = ({ runtime }) => {
39
39
  const [{ layout, invitationCode, spaceKey, target }, setLayout] = (0, react_1.useState)({
40
40
  layout: runtime.layout,
41
41
  invitationCode: runtime.invitationCode,
42
42
  spaceKey: runtime.spaceKey,
43
43
  target: runtime.target,
44
44
  });
45
+ const [{ invitationUrl, deviceInvitationParam, spaceInvitationParam }, setInvitationUrl] = (0, react_1.useState)({
46
+ invitationUrl: runtime.invitationUrl,
47
+ deviceInvitationParam: runtime.deviceInvitationParam,
48
+ spaceInvitationParam: runtime.spaceInvitationParam,
49
+ });
45
50
  const client = (0, react_client_1.useClient)();
46
51
  const space = (0, echo_1.useSpace)(spaceKey);
52
+ const createDeviceInvitationUrl = (invitationCode) => {
53
+ const baseUrl = new URL(invitationUrl);
54
+ baseUrl.searchParams.set(deviceInvitationParam, invitationCode);
55
+ return baseUrl.toString();
56
+ };
57
+ const createSpaceInvitationUrl = (invitationCode) => {
58
+ const baseUrl = new URL(invitationUrl);
59
+ baseUrl.searchParams.set(spaceInvitationParam, invitationCode);
60
+ return baseUrl.toString();
61
+ };
47
62
  (0, react_1.useEffect)(() => {
48
- return runtime.layoutUpdate.on((request) => setLayout(request));
63
+ const unsubscribeLayout = runtime.layoutUpdate.on((request) => setLayout(request));
64
+ const unsubscribeInvitationUrl = runtime.invitationUrlUpdate.on((request) => setInvitationUrl(request));
65
+ return () => {
66
+ unsubscribeLayout();
67
+ unsubscribeInvitationUrl();
68
+ };
49
69
  }, [runtime]);
50
70
  (0, react_1.useEffect)(() => {
51
71
  if (layout === react_client_1.ShellLayout.SPACE && !space) {
@@ -69,7 +89,7 @@ const Shell = ({ runtime, origin }) => {
69
89
  case react_client_1.ShellLayout.IDENTITY:
70
90
  case react_client_1.ShellLayout.SHARE_IDENTITY:
71
91
  case react_client_1.ShellLayout.EDIT_PROFILE:
72
- return (react_1.default.createElement(IdentityDialog_1.IdentityDialog, { createInvitationUrl: (invitationCode) => `${origin}?deviceInvitationCode=${invitationCode}`, onResetStorage: async () => {
92
+ return (react_1.default.createElement(IdentityDialog_1.IdentityDialog, { createInvitationUrl: createDeviceInvitationUrl, onResetStorage: async () => {
73
93
  runtime.setLayout({ layout: react_client_1.ShellLayout.STATUS });
74
94
  await client.reset();
75
95
  return runtime.setAppContext({ display: react_client_1.ShellDisplay.NONE, reload: true });
@@ -82,7 +102,7 @@ const Shell = ({ runtime, origin }) => {
82
102
  runtime.setLayout({ layout: react_client_1.ShellLayout.DEFAULT });
83
103
  }, initialDisposition: layout === react_client_1.ShellLayout.SHARE_IDENTITY ? 'manage-device-invitation' : 'default' }));
84
104
  case react_client_1.ShellLayout.SPACE:
85
- return space ? (react_1.default.createElement(SpaceDialog_1.SpaceDialog, { space: space, target: target, createInvitationUrl: (invitationCode) => `${origin}?spaceInvitationCode=${invitationCode}`, onDone: async () => {
105
+ return space ? (react_1.default.createElement(SpaceDialog_1.SpaceDialog, { space: space, target: target, createInvitationUrl: createSpaceInvitationUrl, onDone: async () => {
86
106
  await runtime.setAppContext({ display: react_client_1.ShellDisplay.NONE });
87
107
  runtime.setLayout({ layout: react_client_1.ShellLayout.DEFAULT });
88
108
  } })) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"Shell.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/Shell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Shell.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/Shell.tsx"],"names":[],"mappings":"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"}
@@ -122,7 +122,7 @@ const ShellProvider = ({ space, deviceInvitationCode, spaceInvitationCode, onJoi
122
122
  }, [shellRuntime]);
123
123
  return (react_1.default.createElement(react_1.default.Fragment, null,
124
124
  shellRuntime && (react_1.default.createElement("div", { className: (0, react_ui_theme_1.mx)(display === react_client_1.ShellDisplay.NONE ? 'hidden' : '') },
125
- react_1.default.createElement(Shell_1.Shell, { runtime: shellRuntime, origin: window.location.origin }))),
125
+ react_1.default.createElement(Shell_1.Shell, { runtime: shellRuntime }))),
126
126
  react_1.default.createElement(exports.ShellContext.Provider, { value: { runtime: shellRuntime, setDisplay } }, children)));
127
127
  };
128
128
  exports.ShellProvider = ShellProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"ShellContext.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/ShellContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShellContext.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/ShellContext.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,24 @@
1
1
  import { Event } from '@dxos/async';
2
- import { type AppContextRequest, type LayoutRequest, type PublicKey, ShellLayout, type ShellRuntime } from '@dxos/react-client';
2
+ import { ShellLayout, type AppContextRequest, type InvitationUrlRequest, type LayoutRequest, type PublicKey, type ShellRuntime } from '@dxos/react-client';
3
3
  export declare class MemoryShellRuntime implements ShellRuntime {
4
4
  readonly layoutUpdate: Event<LayoutRequest>;
5
+ readonly invitationUrlUpdate: Event<InvitationUrlRequest>;
5
6
  readonly contextUpdate: Event<AppContextRequest>;
6
7
  private _layout;
7
8
  private _invitationCode?;
8
9
  private _spaceKey?;
9
- constructor({ layout, invitationCode, spaceKey }?: Partial<LayoutRequest> & Partial<AppContextRequest>);
10
+ private _invitationUrl;
11
+ private _deviceInvitationParam;
12
+ private _spaceInvitationParam;
13
+ constructor({ layout, invitationCode, spaceKey, invitationUrl, deviceInvitationParam, spaceInvitationParam, }?: Partial<LayoutRequest> & Partial<AppContextRequest> & Partial<InvitationUrlRequest>);
10
14
  get layout(): ShellLayout;
11
15
  get invitationCode(): string | undefined;
12
16
  get spaceKey(): PublicKey | undefined;
17
+ get invitationUrl(): string;
18
+ get deviceInvitationParam(): string;
19
+ get spaceInvitationParam(): string;
13
20
  setLayout(request: LayoutRequest): void;
21
+ setInvitationUrl(request: InvitationUrlRequest): void;
14
22
  setAppContext(context: AppContextRequest): Promise<void>;
15
23
  }
16
24
  //# sourceMappingURL=memory-shell-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-shell-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/composites/Shell/memory-shell-runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,WAAW,EACX,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAG5B,qBAAa,kBAAmB,YAAW,YAAY;IACrD,QAAQ,CAAC,YAAY,uBAA8B;IACnD,QAAQ,CAAC,aAAa,2BAAkC;IACxD,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,SAAS,CAAC,CAAY;gBAElB,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAM;IAM1G,IAAI,MAAM,gBAET;IAED,IAAI,cAAc,uBAEjB;IAED,IAAI,QAAQ,0BAEX;IAED,SAAS,CAAC,OAAO,EAAE,aAAa;IAO1B,aAAa,CAAC,OAAO,EAAE,iBAAiB;CAG/C"}
1
+ {"version":3,"file":"memory-shell-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/composites/Shell/memory-shell-runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAG5B,qBAAa,kBAAmB,YAAW,YAAY;IACrD,QAAQ,CAAC,YAAY,uBAA8B;IACnD,QAAQ,CAAC,mBAAmB,8BAAqC;IACjE,QAAQ,CAAC,aAAa,2BAAkC;IACxD,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,qBAAqB,CAAS;gBAE1B,EACV,MAAM,EACN,cAAc,EACd,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,oBAAoB,GACrB,GAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAM;IAS3F,IAAI,MAAM,gBAET;IAED,IAAI,cAAc,uBAEjB;IAED,IAAI,QAAQ,0BAEX;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,qBAAqB,WAExB;IAED,IAAI,oBAAoB,WAEvB;IAED,SAAS,CAAC,OAAO,EAAE,aAAa;IAOhC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB;IAOxC,aAAa,CAAC,OAAO,EAAE,iBAAiB;CAG/C"}
@@ -8,12 +8,16 @@ const async_1 = require("@dxos/async");
8
8
  const react_client_1 = require("@dxos/react-client");
9
9
  // TODO(wittjosiah): Remove?
10
10
  class MemoryShellRuntime {
11
- constructor({ layout, invitationCode, spaceKey } = {}) {
11
+ constructor({ layout, invitationCode, spaceKey, invitationUrl, deviceInvitationParam, spaceInvitationParam, } = {}) {
12
12
  this.layoutUpdate = new async_1.Event();
13
+ this.invitationUrlUpdate = new async_1.Event();
13
14
  this.contextUpdate = new async_1.Event();
14
15
  this._layout = layout !== null && layout !== void 0 ? layout : react_client_1.ShellLayout.DEFAULT;
15
16
  this._invitationCode = invitationCode;
16
17
  this._spaceKey = spaceKey;
18
+ this._invitationUrl = invitationUrl !== null && invitationUrl !== void 0 ? invitationUrl : window.location.origin;
19
+ this._deviceInvitationParam = deviceInvitationParam !== null && deviceInvitationParam !== void 0 ? deviceInvitationParam : 'deviceInvitationCode';
20
+ this._spaceInvitationParam = spaceInvitationParam !== null && spaceInvitationParam !== void 0 ? spaceInvitationParam : 'spaceInvitationCode';
17
21
  }
18
22
  get layout() {
19
23
  return this._layout;
@@ -24,12 +28,27 @@ class MemoryShellRuntime {
24
28
  get spaceKey() {
25
29
  return this._spaceKey;
26
30
  }
31
+ get invitationUrl() {
32
+ return this._invitationUrl;
33
+ }
34
+ get deviceInvitationParam() {
35
+ return this._deviceInvitationParam;
36
+ }
37
+ get spaceInvitationParam() {
38
+ return this._spaceInvitationParam;
39
+ }
27
40
  setLayout(request) {
28
41
  this._layout = request.layout;
29
42
  this._invitationCode = request.invitationCode;
30
43
  this._spaceKey = request.spaceKey;
31
44
  this.layoutUpdate.emit(request);
32
45
  }
46
+ setInvitationUrl(request) {
47
+ this._invitationUrl = request.invitationUrl;
48
+ this._deviceInvitationParam = request.deviceInvitationParam;
49
+ this._spaceInvitationParam = request.spaceInvitationParam;
50
+ this.invitationUrlUpdate.emit(request);
51
+ }
33
52
  async setAppContext(context) {
34
53
  this.contextUpdate.emit(context);
35
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory-shell-runtime.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/memory-shell-runtime.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,uCAAoC;AACpC,qDAM4B;AAE5B,4BAA4B;AAC5B,MAAa,kBAAkB;IAO7B,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,KAA0D,EAAE;QANjG,iBAAY,GAAG,IAAI,aAAK,EAAiB,CAAC;QAC1C,kBAAa,GAAG,IAAI,aAAK,EAAqB,CAAC;QAMtD,IAAI,CAAC,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,0BAAW,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,OAAsB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA0B;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF;AAnCD,gDAmCC"}
1
+ {"version":3,"file":"memory-shell-runtime.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/memory-shell-runtime.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,uCAAoC;AACpC,qDAO4B;AAE5B,4BAA4B;AAC5B,MAAa,kBAAkB;IAW7B,YAAY,EACV,MAAM,EACN,cAAc,EACd,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,oBAAoB,MACmE,EAAE;QAjBlF,iBAAY,GAAG,IAAI,aAAK,EAAiB,CAAC;QAC1C,wBAAmB,GAAG,IAAI,aAAK,EAAwB,CAAC;QACxD,kBAAa,GAAG,IAAI,aAAK,EAAqB,CAAC;QAgBtD,IAAI,CAAC,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,0BAAW,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9D,IAAI,CAAC,sBAAsB,GAAG,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,sBAAsB,CAAC;QAC9E,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,qBAAqB,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,OAAsB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,OAA6B;QAC5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QAC5D,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA0B;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF;AApED,gDAoEC"}
@@ -52,7 +52,7 @@ const runShell = async (config = new react_client_1.Config()) => {
52
52
  react_1.default.createElement(components_1.ClipboardProvider, null,
53
53
  react_1.default.createElement(react_ui_1.Tooltip.Provider, null,
54
54
  react_1.default.createElement(react_client_1.AgentHostingProvider, null,
55
- react_1.default.createElement(Shell_1.Shell, { runtime: runtime, origin: location.origin }))))))));
55
+ react_1.default.createElement(Shell_1.Shell, { runtime: runtime }))))))));
56
56
  }
57
57
  catch (_a) {
58
58
  // If shell's client fails to initialize, ensure that the shell is still closeable.
@@ -1 +1 @@
1
- {"version":3,"file":"run-shell.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/run-shell.tsx"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+CAA0C;AAC1C,6CAA8C;AAE9C,2DAAsF;AACtF,2DAAyD;AACzD,qDAQ4B;AAC5B,6CAAwF;AACxF,yDAAiD;AACjD,iDAAoD;AAEpD,mCAAgC;AAChC,iDAAqD;AACrD,qDAAoD;AAE7C,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAiB,IAAI,qBAAM,EAAE,EAAE,EAAE;IAC9D,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAI,kCAAgB,CAAC,IAAA,6BAAgB,EAAC,EAAE,OAAO,EAAE,uCAAqB,EAAE,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAErB,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,kCAAmB,CAAC,IAAA,6BAAgB,EAAC,EAAE,OAAO,EAAE,wCAAsB,EAAE,CAAC,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,IAAI,qBAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAE1B,IAAA,mBAAU,EAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,CACjD,8BAAC,kBAAU;YACT,8BAAC,wBAAa,IAAC,EAAE,EAAE,0BAAS,EAAE,kBAAkB,EAAE,CAAC,6BAAc,CAAC;gBAChE,8BAAC,4BAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,2BAAY,CAAC,MAAM,EAAE;oBACpE,8BAAC,8BAAiB;wBAChB,8BAAC,kBAAO,CAAC,QAAQ;4BACf,8BAAC,mCAAoB;gCACnB,8BAAC,aAAK,IAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAI,CAC/B,CACN,CACD,CACG,CACX,CACL,CACd,CAAC;KACH;IAAC,WAAM;QACN,mFAAmF;QACnF,IAAA,mBAAU,EAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,CACjD,8BAAC,kBAAU;YACT,8BAAC,wBAAa,IAAC,EAAE,EAAE,0BAAS,EAAE,kBAAkB,EAAE,CAAC,6BAAc,CAAC;gBAChE,8BAAC,QAAQ,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,2BAAY,CAAC,IAAI,EAAE,CAAC,GAAI,CACpE,CACL,CACd,CAAC;KACH;AACH,CAAC,CAAC;AAnCW,QAAA,QAAQ,YAmCnB;AAEF,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAA4B,EAAE,EAAE;IACzD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,yBAAc,EAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,CACL,8BAAC,iBAAM,CAAC,IAAI,IAAC,KAAK,QAAC,IAAI,QAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI;QACrD,8BAAC,iBAAM,CAAC,OAAO;YACb,8BAAC,iBAAM,CAAC,OAAO;gBACb,8BAAC,iBAAM,CAAC,KAAK,QAAE,CAAC,CAAC,sBAAsB,CAAC,CAAgB;gBACxD,8BAAC,iBAAM,CAAC,KAAK,IAAC,OAAO,QAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI;oBAC9C,8BAAC,iBAAM,IAAC,OAAO,EAAC,SAAS,IAAE,CAAC,CAAC,aAAa,CAAC,CAAU,CACxC,CACA,CACF,CACL,CACf,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"run-shell.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/run-shell.tsx"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+CAA0C;AAC1C,6CAA8C;AAE9C,2DAAsF;AACtF,2DAAyD;AACzD,qDAQ4B;AAC5B,6CAAwF;AACxF,yDAAiD;AACjD,iDAAoD;AAEpD,mCAAgC;AAChC,iDAAqD;AACrD,qDAAoD;AAE7C,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAiB,IAAI,qBAAM,EAAE,EAAE,EAAE;IAC9D,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAI,kCAAgB,CAAC,IAAA,6BAAgB,EAAC,EAAE,OAAO,EAAE,uCAAqB,EAAE,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAErB,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,kCAAmB,CAAC,IAAA,6BAAgB,EAAC,EAAE,OAAO,EAAE,wCAAsB,EAAE,CAAC,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,IAAI,qBAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAE1B,IAAA,mBAAU,EAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,CACjD,8BAAC,kBAAU;YACT,8BAAC,wBAAa,IAAC,EAAE,EAAE,0BAAS,EAAE,kBAAkB,EAAE,CAAC,6BAAc,CAAC;gBAChE,8BAAC,4BAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,2BAAY,CAAC,MAAM,EAAE;oBACpE,8BAAC,8BAAiB;wBAChB,8BAAC,kBAAO,CAAC,QAAQ;4BACf,8BAAC,mCAAoB;gCACnB,8BAAC,aAAK,IAAC,OAAO,EAAE,OAAO,GAAI,CACN,CACN,CACD,CACG,CACX,CACL,CACd,CAAC;KACH;IAAC,WAAM;QACN,mFAAmF;QACnF,IAAA,mBAAU,EAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,CACjD,8BAAC,kBAAU;YACT,8BAAC,wBAAa,IAAC,EAAE,EAAE,0BAAS,EAAE,kBAAkB,EAAE,CAAC,6BAAc,CAAC;gBAChE,8BAAC,QAAQ,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,2BAAY,CAAC,IAAI,EAAE,CAAC,GAAI,CACpE,CACL,CACd,CAAC;KACH;AACH,CAAC,CAAC;AAnCW,QAAA,QAAQ,YAmCnB;AAEF,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAA4B,EAAE,EAAE;IACzD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,yBAAc,EAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,CACL,8BAAC,iBAAM,CAAC,IAAI,IAAC,KAAK,QAAC,IAAI,QAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI;QACrD,8BAAC,iBAAM,CAAC,OAAO;YACb,8BAAC,iBAAM,CAAC,OAAO;gBACb,8BAAC,iBAAM,CAAC,KAAK,QAAE,CAAC,CAAC,sBAAsB,CAAC,CAAgB;gBACxD,8BAAC,iBAAM,CAAC,KAAK,IAAC,OAAO,QAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI;oBAC9C,8BAAC,iBAAM,IAAC,OAAO,EAAC,SAAS,IAAE,CAAC,CAAC,aAAa,CAAC,CAAU,CACxC,CACA,CACF,CACL,CACf,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/shell",
3
- "version": "0.5.1-main.d3f3a55",
3
+ "version": "0.5.1-main.ea79cb0",
4
4
  "description": "DXOS’s OS experiences",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -42,18 +42,18 @@
42
42
  "react-qr-rounded": "^1.0.0",
43
43
  "url-join": "^5.0.0",
44
44
  "xstate": "^4.37.0",
45
- "@dxos/async": "0.5.1-main.d3f3a55",
46
- "@dxos/client-protocol": "0.5.1-main.d3f3a55",
47
- "@dxos/client-services": "0.5.1-main.d3f3a55",
48
- "@dxos/debug": "0.5.1-main.d3f3a55",
49
- "@dxos/invariant": "0.5.1-main.d3f3a55",
50
- "@dxos/display-name": "0.5.1-main.d3f3a55",
51
- "@dxos/log": "0.5.1-main.d3f3a55",
52
- "@dxos/react-ui": "0.5.1-main.d3f3a55",
53
- "@dxos/react-ui-theme": "0.5.1-main.d3f3a55",
54
- "@dxos/react-ui-types": "0.5.1-main.d3f3a55",
55
- "@dxos/rpc-tunnel": "0.5.1-main.d3f3a55",
56
- "@dxos/util": "0.5.1-main.d3f3a55"
45
+ "@dxos/async": "0.5.1-main.ea79cb0",
46
+ "@dxos/client-protocol": "0.5.1-main.ea79cb0",
47
+ "@dxos/client-services": "0.5.1-main.ea79cb0",
48
+ "@dxos/debug": "0.5.1-main.ea79cb0",
49
+ "@dxos/log": "0.5.1-main.ea79cb0",
50
+ "@dxos/react-ui": "0.5.1-main.ea79cb0",
51
+ "@dxos/display-name": "0.5.1-main.ea79cb0",
52
+ "@dxos/react-ui-theme": "0.5.1-main.ea79cb0",
53
+ "@dxos/invariant": "0.5.1-main.ea79cb0",
54
+ "@dxos/react-ui-types": "0.5.1-main.ea79cb0",
55
+ "@dxos/rpc-tunnel": "0.5.1-main.ea79cb0",
56
+ "@dxos/util": "0.5.1-main.ea79cb0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@phosphor-icons/react": "^2.1.5",
@@ -64,19 +64,19 @@
64
64
  "react-dom": "^18.2.0",
65
65
  "vite": "^5.2.9",
66
66
  "vite-plugin-turbosnap": "^1.0.2",
67
- "@dxos/random": "0.5.1-main.d3f3a55",
68
- "@dxos/protocols": "0.5.1-main.d3f3a55",
69
- "@dxos/react-ui-theme": "0.5.1-main.d3f3a55",
70
- "@dxos/react-client": "0.5.1-main.d3f3a55",
71
- "@dxos/storybook-utils": "0.5.1-main.d3f3a55",
72
- "@dxos/config": "0.5.1-main.d3f3a55",
73
- "@dxos/react-async": "0.5.1-main.d3f3a55"
67
+ "@dxos/config": "0.5.1-main.ea79cb0",
68
+ "@dxos/protocols": "0.5.1-main.ea79cb0",
69
+ "@dxos/random": "0.5.1-main.ea79cb0",
70
+ "@dxos/react-async": "0.5.1-main.ea79cb0",
71
+ "@dxos/react-ui-theme": "0.5.1-main.ea79cb0",
72
+ "@dxos/storybook-utils": "0.5.1-main.ea79cb0",
73
+ "@dxos/react-client": "0.5.1-main.ea79cb0"
74
74
  },
75
75
  "peerDependencies": {
76
76
  "@phosphor-icons/react": "^2.0.5",
77
77
  "react": "^18.2.0",
78
78
  "react-dom": "^18.2.0",
79
- "@dxos/react-client": "0.5.1-main.d3f3a55"
79
+ "@dxos/react-client": "0.5.1-main.ea79cb0"
80
80
  },
81
81
  "publishConfig": {
82
82
  "access": "public"
@@ -5,7 +5,14 @@
5
5
  import React, { useEffect, useState } from 'react';
6
6
 
7
7
  import { log } from '@dxos/log';
8
- import { type LayoutRequest, ShellDisplay, ShellLayout, type ShellRuntime, useClient } from '@dxos/react-client';
8
+ import {
9
+ type LayoutRequest,
10
+ ShellDisplay,
11
+ ShellLayout,
12
+ type ShellRuntime,
13
+ useClient,
14
+ type InvitationUrlRequest,
15
+ } from '@dxos/react-client';
9
16
  import { useSpace } from '@dxos/react-client/echo';
10
17
 
11
18
  import { IdentityDialog } from '../IdentityDialog';
@@ -13,19 +20,43 @@ import { JoinDialog } from '../JoinDialog';
13
20
  import { SpaceDialog } from '../SpaceDialog';
14
21
  import { StatusDialog } from '../StatusDialog';
15
22
 
16
- export const Shell = ({ runtime, origin }: { runtime: ShellRuntime; origin: string }) => {
23
+ export const Shell = ({ runtime }: { runtime: ShellRuntime }) => {
17
24
  const [{ layout, invitationCode, spaceKey, target }, setLayout] = useState<LayoutRequest>({
18
25
  layout: runtime.layout,
19
26
  invitationCode: runtime.invitationCode,
20
27
  spaceKey: runtime.spaceKey,
21
28
  target: runtime.target,
22
29
  });
30
+ const [{ invitationUrl, deviceInvitationParam, spaceInvitationParam }, setInvitationUrl] =
31
+ useState<InvitationUrlRequest>({
32
+ invitationUrl: runtime.invitationUrl,
33
+ deviceInvitationParam: runtime.deviceInvitationParam,
34
+ spaceInvitationParam: runtime.spaceInvitationParam,
35
+ });
23
36
 
24
37
  const client = useClient();
25
38
  const space = useSpace(spaceKey);
26
39
 
40
+ const createDeviceInvitationUrl = (invitationCode: string) => {
41
+ const baseUrl = new URL(invitationUrl);
42
+ baseUrl.searchParams.set(deviceInvitationParam, invitationCode);
43
+ return baseUrl.toString();
44
+ };
45
+
46
+ const createSpaceInvitationUrl = (invitationCode: string) => {
47
+ const baseUrl = new URL(invitationUrl);
48
+ baseUrl.searchParams.set(spaceInvitationParam, invitationCode);
49
+ return baseUrl.toString();
50
+ };
51
+
27
52
  useEffect(() => {
28
- return runtime.layoutUpdate.on((request) => setLayout(request));
53
+ const unsubscribeLayout = runtime.layoutUpdate.on((request) => setLayout(request));
54
+ const unsubscribeInvitationUrl = runtime.invitationUrlUpdate.on((request) => setInvitationUrl(request));
55
+
56
+ return () => {
57
+ unsubscribeLayout();
58
+ unsubscribeInvitationUrl();
59
+ };
29
60
  }, [runtime]);
30
61
 
31
62
  useEffect(() => {
@@ -66,7 +97,7 @@ export const Shell = ({ runtime, origin }: { runtime: ShellRuntime; origin: stri
66
97
  case ShellLayout.EDIT_PROFILE:
67
98
  return (
68
99
  <IdentityDialog
69
- createInvitationUrl={(invitationCode) => `${origin}?deviceInvitationCode=${invitationCode}`}
100
+ createInvitationUrl={createDeviceInvitationUrl}
70
101
  onResetStorage={async () => {
71
102
  runtime.setLayout({ layout: ShellLayout.STATUS });
72
103
  await client.reset();
@@ -90,7 +121,7 @@ export const Shell = ({ runtime, origin }: { runtime: ShellRuntime; origin: stri
90
121
  <SpaceDialog
91
122
  space={space}
92
123
  target={target}
93
- createInvitationUrl={(invitationCode) => `${origin}?spaceInvitationCode=${invitationCode}`}
124
+ createInvitationUrl={createSpaceInvitationUrl}
94
125
  onDone={async () => {
95
126
  await runtime.setAppContext({ display: ShellDisplay.NONE });
96
127
  runtime.setLayout({ layout: ShellLayout.DEFAULT });
@@ -153,7 +153,7 @@ export const ShellProvider = ({
153
153
  <>
154
154
  {shellRuntime && (
155
155
  <div className={mx(display === ShellDisplay.NONE ? 'hidden' : '')}>
156
- <Shell runtime={shellRuntime} origin={window.location.origin} />
156
+ <Shell runtime={shellRuntime} />
157
157
  </div>
158
158
  )}
159
159
 
@@ -4,25 +4,40 @@
4
4
 
5
5
  import { Event } from '@dxos/async';
6
6
  import {
7
+ ShellLayout,
7
8
  type AppContextRequest,
9
+ type InvitationUrlRequest,
8
10
  type LayoutRequest,
9
11
  type PublicKey,
10
- ShellLayout,
11
12
  type ShellRuntime,
12
13
  } from '@dxos/react-client';
13
14
 
14
15
  // TODO(wittjosiah): Remove?
15
16
  export class MemoryShellRuntime implements ShellRuntime {
16
17
  readonly layoutUpdate = new Event<LayoutRequest>();
18
+ readonly invitationUrlUpdate = new Event<InvitationUrlRequest>();
17
19
  readonly contextUpdate = new Event<AppContextRequest>();
18
20
  private _layout: ShellLayout;
19
21
  private _invitationCode?: string;
20
22
  private _spaceKey?: PublicKey;
23
+ private _invitationUrl: string;
24
+ private _deviceInvitationParam: string;
25
+ private _spaceInvitationParam: string;
21
26
 
22
- constructor({ layout, invitationCode, spaceKey }: Partial<LayoutRequest> & Partial<AppContextRequest> = {}) {
27
+ constructor({
28
+ layout,
29
+ invitationCode,
30
+ spaceKey,
31
+ invitationUrl,
32
+ deviceInvitationParam,
33
+ spaceInvitationParam,
34
+ }: Partial<LayoutRequest> & Partial<AppContextRequest> & Partial<InvitationUrlRequest> = {}) {
23
35
  this._layout = layout ?? ShellLayout.DEFAULT;
24
36
  this._invitationCode = invitationCode;
25
37
  this._spaceKey = spaceKey;
38
+ this._invitationUrl = invitationUrl ?? window.location.origin;
39
+ this._deviceInvitationParam = deviceInvitationParam ?? 'deviceInvitationCode';
40
+ this._spaceInvitationParam = spaceInvitationParam ?? 'spaceInvitationCode';
26
41
  }
27
42
 
28
43
  get layout() {
@@ -37,6 +52,18 @@ export class MemoryShellRuntime implements ShellRuntime {
37
52
  return this._spaceKey;
38
53
  }
39
54
 
55
+ get invitationUrl() {
56
+ return this._invitationUrl;
57
+ }
58
+
59
+ get deviceInvitationParam() {
60
+ return this._deviceInvitationParam;
61
+ }
62
+
63
+ get spaceInvitationParam() {
64
+ return this._spaceInvitationParam;
65
+ }
66
+
40
67
  setLayout(request: LayoutRequest) {
41
68
  this._layout = request.layout;
42
69
  this._invitationCode = request.invitationCode;
@@ -44,6 +71,13 @@ export class MemoryShellRuntime implements ShellRuntime {
44
71
  this.layoutUpdate.emit(request);
45
72
  }
46
73
 
74
+ setInvitationUrl(request: InvitationUrlRequest) {
75
+ this._invitationUrl = request.invitationUrl;
76
+ this._deviceInvitationParam = request.deviceInvitationParam;
77
+ this._spaceInvitationParam = request.spaceInvitationParam;
78
+ this.invitationUrlUpdate.emit(request);
79
+ }
80
+
47
81
  async setAppContext(context: AppContextRequest) {
48
82
  this.contextUpdate.emit(context);
49
83
  }
@@ -41,7 +41,7 @@ export const runShell = async (config: Config = new Config()) => {
41
41
  <ClipboardProvider>
42
42
  <Tooltip.Provider>
43
43
  <AgentHostingProvider>
44
- <Shell runtime={runtime} origin={location.origin} />
44
+ <Shell runtime={runtime} />
45
45
  </AgentHostingProvider>
46
46
  </Tooltip.Provider>
47
47
  </ClipboardProvider>