@dxos/react-client 0.6.11 → 0.6.12-main.2d19bf1

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.
Files changed (85) hide show
  1. package/dist/lib/browser/{chunk-CL7JDETM.mjs → chunk-RJRDB4LF.mjs} +62 -60
  2. package/dist/lib/browser/chunk-RJRDB4LF.mjs.map +7 -0
  3. package/dist/lib/browser/devtools/index.mjs +1 -1
  4. package/dist/lib/browser/echo/index.mjs +6 -4
  5. package/dist/lib/browser/echo/index.mjs.map +3 -3
  6. package/dist/lib/browser/halo/index.mjs +1 -1
  7. package/dist/lib/browser/index.mjs +1 -3
  8. package/dist/lib/browser/index.mjs.map +1 -1
  9. package/dist/lib/browser/mesh/index.mjs +1 -1
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/testing/index.mjs +43 -32
  12. package/dist/lib/browser/testing/index.mjs.map +3 -3
  13. package/dist/lib/node/{chunk-C4EWAKPZ.cjs → chunk-YNTACPMY.cjs} +63 -60
  14. package/dist/lib/node/chunk-YNTACPMY.cjs.map +7 -0
  15. package/dist/lib/node/devtools/index.cjs +2 -2
  16. package/dist/lib/node/echo/index.cjs +7 -5
  17. package/dist/lib/node/echo/index.cjs.map +3 -3
  18. package/dist/lib/node/halo/index.cjs +5 -5
  19. package/dist/lib/node/index.cjs +12 -14
  20. package/dist/lib/node/index.cjs.map +1 -1
  21. package/dist/lib/node/mesh/index.cjs +2 -2
  22. package/dist/lib/node/meta.json +1 -1
  23. package/dist/lib/node/testing/index.cjs +44 -33
  24. package/dist/lib/node/testing/index.cjs.map +3 -3
  25. package/dist/lib/node-esm/chunk-UYJUBYMU.mjs +165 -0
  26. package/dist/lib/node-esm/chunk-UYJUBYMU.mjs.map +7 -0
  27. package/dist/lib/node-esm/chunk-V65AVUQO.mjs +295 -0
  28. package/dist/lib/node-esm/chunk-V65AVUQO.mjs.map +7 -0
  29. package/dist/lib/node-esm/devtools/index.mjs +44 -0
  30. package/dist/lib/node-esm/devtools/index.mjs.map +7 -0
  31. package/dist/lib/node-esm/echo/index.mjs +134 -0
  32. package/dist/lib/node-esm/echo/index.mjs.map +7 -0
  33. package/dist/lib/node-esm/halo/index.mjs +100 -0
  34. package/dist/lib/node-esm/halo/index.mjs.map +7 -0
  35. package/dist/lib/node-esm/index.mjs +33 -0
  36. package/dist/lib/node-esm/index.mjs.map +7 -0
  37. package/dist/lib/node-esm/invitations/index.mjs +18 -0
  38. package/dist/lib/node-esm/invitations/index.mjs.map +7 -0
  39. package/dist/lib/node-esm/mesh/index.mjs +18 -0
  40. package/dist/lib/node-esm/mesh/index.mjs.map +7 -0
  41. package/dist/lib/node-esm/meta.json +1 -0
  42. package/dist/lib/node-esm/testing/index.mjs +177 -0
  43. package/dist/lib/node-esm/testing/index.mjs.map +7 -0
  44. package/dist/lib/node-esm/worker.mjs +5 -0
  45. package/dist/lib/node-esm/worker.mjs.map +7 -0
  46. package/dist/types/src/client/ClientProvider.d.ts +59 -18
  47. package/dist/types/src/client/ClientProvider.d.ts.map +1 -1
  48. package/dist/types/src/client/context.d.ts +1 -4
  49. package/dist/types/src/client/context.d.ts.map +1 -1
  50. package/dist/types/src/client/index.d.ts +0 -1
  51. package/dist/types/src/client/index.d.ts.map +1 -1
  52. package/dist/types/src/echo/useQuery.d.ts.map +1 -1
  53. package/dist/types/src/playwright/playwright.config.d.ts +2 -2
  54. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
  55. package/dist/types/src/testing/ClientRepeater.d.ts +9 -12
  56. package/dist/types/src/testing/ClientRepeater.d.ts.map +1 -1
  57. package/dist/types/src/testing/util.d.ts +5 -3
  58. package/dist/types/src/testing/util.d.ts.map +1 -1
  59. package/dist/types/src/testing/withClientProvider.d.ts +4 -1
  60. package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
  61. package/dist/types/src/testing/withClientProvider.stories.d.ts +4 -3
  62. package/dist/types/src/testing/withClientProvider.stories.d.ts.map +1 -1
  63. package/package.json +47 -38
  64. package/project.json +3 -22
  65. package/src/client/ClientProvider.test.tsx +7 -4
  66. package/src/client/ClientProvider.tsx +126 -100
  67. package/src/client/context.ts +4 -5
  68. package/src/client/index.ts +0 -3
  69. package/src/client/useConfig.test.tsx +7 -11
  70. package/src/echo/useQuery.ts +3 -6
  71. package/src/echo/useSpaces.test.tsx +6 -8
  72. package/src/halo/useDevices.test.tsx +3 -5
  73. package/src/playwright/playwright.config.ts +13 -2
  74. package/src/playwright/smoke.spec.ts +5 -10
  75. package/src/testing/ClientRepeater.tsx +19 -20
  76. package/src/testing/util.tsx +11 -6
  77. package/src/testing/withClientProvider.stories.tsx +19 -10
  78. package/src/testing/withClientProvider.tsx +22 -18
  79. package/tsconfig.json +2 -58
  80. package/vitest.config.ts +22 -0
  81. package/dist/lib/browser/chunk-CL7JDETM.mjs.map +0 -7
  82. package/dist/lib/node/chunk-C4EWAKPZ.cjs.map +0 -7
  83. package/dist/types/src/client/useClientServices.d.ts +0 -3
  84. package/dist/types/src/client/useClientServices.d.ts.map +0 -1
  85. package/src/client/useClientServices.ts +0 -15
@@ -1,52 +1,93 @@
1
- import React, { type FunctionComponent, type ReactNode } from 'react';
1
+ import React, { type FunctionComponent, type PropsWithChildren } from 'react';
2
2
  import { Client, type ClientOptions, type ClientServicesProvider } from '@dxos/client';
3
3
  import { type Config } from '@dxos/config';
4
- import { type S } from '@dxos/echo-schema';
5
4
  import { type MaybePromise, type Provider } from '@dxos/util';
6
5
  import { type ClientContextProps } from './context';
7
6
  /**
8
7
  * Properties for the ClientProvider.
9
8
  */
10
- export type ClientProviderProps = Pick<ClientContextProps, 'status'> & Omit<ClientOptions, 'config' | 'services'> & {
11
- children?: ReactNode;
12
- /**
13
- * Config object or async provider.
14
- */
15
- config?: Config | Provider<Promise<Config>>;
9
+ export type ClientProviderProps = Omit<ClientOptions, 'config' | 'services'> & Pick<ClientContextProps, 'status'> & PropsWithChildren<{
16
10
  /**
17
11
  * Client object or async provider to enable to caller to do custom initialization.
18
12
  *
19
- * Most apps won't need this.
13
+ * NOTE: For advanced use cases only.
20
14
  */
21
15
  client?: Client | Provider<Promise<Client>>;
22
16
  /**
23
- * Callback to enable the caller to create a custom ClientServicesProvider.
17
+ * Config object or async provider.
24
18
  *
25
- * Most apps won't need this.
19
+ * NOTE: If a `client` is provided then `config` is ignored.
26
20
  */
27
- services?: ClientServicesProvider | ((config?: Config) => MaybePromise<ClientServicesProvider>);
21
+ config?: Config | Provider<Promise<Config>>;
28
22
  /**
29
- * List of schema to register.
23
+ * Callback to enable the caller to create a custom ClientServicesProvider.
24
+ *
25
+ * NOTE: If a `client` is provided then `services` is ignored.
30
26
  */
31
- types?: S.Schema<any>[];
27
+ services?: ClientServicesProvider | ((config?: Config) => MaybePromise<ClientServicesProvider>);
32
28
  /**
33
29
  * ReactNode to display until the client is available.
34
30
  */
35
31
  fallback?: FunctionComponent<Partial<ClientContextProps>>;
36
32
  /**
37
- * Set to false to stop default signal factory from being registered.
33
+ * Enable (by default) registration of Preact signals runtime for reactive ECHO objects.
34
+ * @see https://www.npmjs.com/package/@preact/signals-react
38
35
  */
39
- registerSignalFactory?: boolean;
36
+ signalsRuntime?: boolean;
37
+ /**
38
+ * Skip the DXOS banner.
39
+ */
40
+ noBanner?: boolean;
40
41
  /**
41
42
  * Post initialization hook to enable to caller to do custom initialization.
42
43
  *
43
44
  * @param Client
44
45
  */
45
46
  onInitialized?: (client: Client) => MaybePromise<void>;
46
- };
47
+ }>;
47
48
  /**
48
49
  * Root component that provides the DXOS client instance to child components.
49
50
  * To be used with the `useClient` hook.
50
51
  */
51
- export declare const ClientProvider: ({ children, config: configProvider, client: clientProvider, services: servicesProvider, types, status: controlledStatus, fallback: Fallback, registerSignalFactory: _registerSignalFactory, onInitialized, ...options }: ClientProviderProps) => React.JSX.Element;
52
+ export declare const ClientProvider: React.ForwardRefExoticComponent<Omit<ClientOptions, "services" | "config"> & Pick<ClientContextProps, "status"> & {
53
+ /**
54
+ * Client object or async provider to enable to caller to do custom initialization.
55
+ *
56
+ * NOTE: For advanced use cases only.
57
+ */
58
+ client?: Client | Provider<Promise<Client>>;
59
+ /**
60
+ * Config object or async provider.
61
+ *
62
+ * NOTE: If a `client` is provided then `config` is ignored.
63
+ */
64
+ config?: Config | Provider<Promise<Config>>;
65
+ /**
66
+ * Callback to enable the caller to create a custom ClientServicesProvider.
67
+ *
68
+ * NOTE: If a `client` is provided then `services` is ignored.
69
+ */
70
+ services?: ClientServicesProvider | ((config?: Config) => MaybePromise<ClientServicesProvider>);
71
+ /**
72
+ * ReactNode to display until the client is available.
73
+ */
74
+ fallback?: FunctionComponent<Partial<ClientContextProps>>;
75
+ /**
76
+ * Enable (by default) registration of Preact signals runtime for reactive ECHO objects.
77
+ * @see https://www.npmjs.com/package/@preact/signals-react
78
+ */
79
+ signalsRuntime?: boolean;
80
+ /**
81
+ * Skip the DXOS banner.
82
+ */
83
+ noBanner?: boolean;
84
+ /**
85
+ * Post initialization hook to enable to caller to do custom initialization.
86
+ *
87
+ * @param Client
88
+ */
89
+ onInitialized?: (client: Client) => MaybePromise<void>;
90
+ } & {
91
+ children?: React.ReactNode | undefined;
92
+ } & React.RefAttributes<Client | undefined>>;
52
93
  //# sourceMappingURL=ClientProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/ClientProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAgC,MAAM,OAAO,CAAC;AAEpG,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAgB,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAI3C,OAAO,EAAyB,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGnE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAClE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IAIH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEhG;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE1D;;OAEG;IAEH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACxD,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,cAAc,4NAWxB,mBAAmB,sBAsErB,CAAC"}
1
+ {"version":3,"file":"ClientProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/ClientProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAKvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAgB,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAyB,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGnE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAC,GAC1E,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAClC,iBAAiB,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IAEH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IAEH,QAAQ,CAAC,EAAE,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEhG;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE1D;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACxD,CAAC,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,cAAc;IAnDvB;;;;OAIG;aACM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;;;OAIG;aAEM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;;;OAIG;eAEQ,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAE/F;;OAEG;eACQ,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEzD;;;OAGG;qBACc,OAAO;IAExB;;OAEG;eACQ,OAAO;IAElB;;;;OAIG;oBACa,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC;;;4CA4GzD,CAAC"}
@@ -1,9 +1,6 @@
1
- import { type Context } from 'react';
2
- import { type Client, type ClientServices, type SystemStatus } from '@dxos/client';
1
+ import { type Client, type SystemStatus } from '@dxos/client';
3
2
  export type ClientContextProps = {
4
3
  client: Client;
5
- services?: ClientServices;
6
4
  status?: SystemStatus | null;
7
5
  };
8
- export declare const ClientContext: Context<ClientContextProps | undefined>;
9
6
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/client/context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;IAGf,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAEjE,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/client/context.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9B,CAAC"}
@@ -2,7 +2,6 @@ export * from './AgentHostingProvider';
2
2
  export * from './ClientProvider';
3
3
  export * from './context';
4
4
  export * from './useClient';
5
- export * from './useClientServices';
6
5
  export * from './useClientStatus';
7
6
  export * from './useConfig';
8
7
  export * from './useShell';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/index.ts"],"names":[],"mappings":"AAIA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,WAAW,CAAC;AAE1B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/index.ts"],"names":[],"mappings":"AAIA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAE1B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../../src/echo/useQuery.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAEjB,KAAK,YAAY,EACjB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AAEH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,kBAAkB,CAAC,GAAG,CAAC,gBAC1C,KAAK,GAAG,IAAI,WACjB,YAAY,CAAC,CAAC,CAAC,YACd,YAAY,SACf,GAAG,EAAE,KACX,CAAC,EAuBH,CAAC"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../../src/echo/useQuery.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,IAAI,EACT,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAEjB,KAAK,YAAY,EACjB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AAEH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,kBAAkB,CAAC,GAAG,CAAC,gBAC1C,KAAK,GAAG,IAAI,WACjB,YAAY,CAAC,CAAC,CAAC,YACd,YAAY,SACf,GAAG,EAAE,KACX,CAAC,EAuBH,CAAC"}
@@ -1,3 +1,3 @@
1
- import { defaultPlaywrightConfig } from '@dxos/test/playwright';
2
- export default defaultPlaywrightConfig;
1
+ declare const _default: import("@playwright/test").PlaywrightTestConfig<{}, {}>;
2
+ export default _default;
3
3
  //# sourceMappingURL=playwright.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.config.d.ts","sourceRoot":"","sources":["../../../../src/playwright/playwright.config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"playwright.config.d.ts","sourceRoot":"","sources":["../../../../src/playwright/playwright.config.ts"],"names":[],"mappings":";AASA,wBAQG"}
@@ -1,31 +1,28 @@
1
+ import { type Schema as S } from '@effect/schema';
1
2
  import React, { type FC } from 'react';
2
3
  import { Client, type PublicKey } from '@dxos/client';
3
- import { type Space } from '@dxos/client/echo';
4
- import { type S } from '@dxos/echo-schema';
5
- import { type MaybePromise } from '@dxos/util';
4
+ import { type WithClientProviderProps } from './withClientProvider';
6
5
  export type ClientRepeatedComponentProps = {
7
6
  id: number;
8
7
  count: number;
9
8
  spaceKey?: PublicKey;
10
9
  };
10
+ export type ClientRepeaterControlsProps = {
11
+ clients: Client[];
12
+ };
11
13
  export type ClientRepeaterProps<P extends ClientRepeatedComponentProps> = {
12
14
  className?: string;
13
15
  component: FC<ClientRepeatedComponentProps>;
14
- controls?: FC<{
15
- clients: Client[];
16
- }>;
17
- clients?: Client[];
16
+ controls?: FC<ClientRepeaterControlsProps>;
18
17
  count?: number;
19
- registerSignalFactory?: boolean;
18
+ clients?: Client[];
20
19
  types?: S.Schema<any>[];
21
- createIdentity?: boolean;
22
- createSpace?: boolean;
23
- onCreateSpace?: (space: Space) => MaybePromise<void>;
24
20
  args?: Omit<P, 'id' | 'count'>;
25
- };
21
+ } & Pick<WithClientProviderProps, 'createIdentity' | 'createSpace' | 'onSpaceCreated'>;
26
22
  /**
27
23
  * Utility component for Storybook stories which sets up clients for n peers.
28
24
  * The `Component` property is rendered n times, once for each peer.
25
+ * @deprecated use `withClientProvider`.
29
26
  */
30
27
  export declare const ClientRepeater: <P extends ClientRepeatedComponentProps>(props: ClientRepeaterProps<P>) => React.JSX.Element | null;
31
28
  //# sourceMappingURL=ClientRepeater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientRepeater.d.ts","sourceRoot":"","sources":["../../../../src/testing/ClientRepeater.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAY,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,MAAM,MAAM,4BAA4B,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE/F,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,4BAA4B,IAAI;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF;;;GAGG;AAMH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,4BAA4B,SAAS,mBAAmB,CAAC,CAAC,CAAC,6BA2DnG,CAAC"}
1
+ {"version":3,"file":"ClientRepeater.d.ts","sourceRoot":"","sources":["../../../../src/testing/ClientRepeater.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,EAAY,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKtD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,MAAM,4BAA4B,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE/F,MAAM,MAAM,2BAA2B,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAGhE,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,4BAA4B,IAAI;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;CAChC,GAAG,IAAI,CAAC,uBAAuB,EAAE,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,CAAC,CAAC;AAEvF;;;;GAIG;AAMH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,4BAA4B,SAAS,mBAAmB,CAAC,CAAC,CAAC,6BA2DnG,CAAC"}
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
- import { Client } from '@dxos/client';
2
+ import { Client, type Config } from '@dxos/client';
3
3
  import { type Space } from '@dxos/client/echo';
4
- export declare const createClient: ({ createIdentity, createSpace, }?: {
4
+ export declare const createClient: ({ config, createIdentity, createSpace, }?: {
5
+ config?: Config;
5
6
  createIdentity?: boolean;
6
7
  createSpace?: boolean;
7
8
  }) => Promise<{
8
9
  client: Client;
9
10
  space: Space | undefined;
10
11
  }>;
11
- export declare const createContextProvider: (client: Client) => Promise<({ children }: any) => React.JSX.Element>;
12
+ export declare const createClientContextProvider: (client: Client) => Promise<({ children }: any) => React.JSX.Element>;
13
+ export declare const createClientProvider: (client: Client) => Promise<({ children }: any) => React.JSX.Element>;
12
14
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/testing/util.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAY,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,eAAO,MAAM,YAAY,sCAGtB;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;;;EAcrD,CAAC;AAGF,eAAO,MAAM,qBAAqB,WAAkB,MAAM,4BAClC,GAAG,uBAC1B,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/testing/util.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAY,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAK/C,eAAO,MAAM,YAAY,8CAItB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;;;EActE,CAAC;AAEF,eAAO,MAAM,2BAA2B,WAAkB,MAAM,4BACxC,GAAG,uBAC1B,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAkB,MAAM,4BACjC,GAAG,uBAC1B,CAAC"}
@@ -6,7 +6,10 @@ import { type ClientProviderProps } from '../client';
6
6
  type InitializeProps = {
7
7
  createIdentity?: boolean;
8
8
  createSpace?: boolean;
9
- onSpaceCreated?: (client: Client, space: Space) => MaybePromise<void>;
9
+ onSpaceCreated?: (props: {
10
+ client: Client;
11
+ space: Space;
12
+ }) => MaybePromise<void>;
10
13
  };
11
14
  export type WithClientProviderProps = InitializeProps & ClientProviderProps;
12
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"withClientProvider.d.ts","sourceRoot":"","sources":["../../../../src/testing/withClientProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKlD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErE,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACvE,CAAC;AA4BF,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,kBAAkB,8EAM5B,uBAAuB,KAAQ,SAYjC,CAAC;AAKF,MAAM,MAAM,4BAA4B,GAAG,eAAe,GAAG,mBAAmB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3G;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,yFAOjC,4BAA4B,KAAG,SAuCjC,CAAC"}
1
+ {"version":3,"file":"withClientProvider.d.ts","sourceRoot":"","sources":["../../../../src/testing/withClientProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKlD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErE,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAClF,CAAC;AA8BF,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,kBAAkB,8EAM5B,uBAAuB,KAAQ,SAcjC,CAAC;AAKF,MAAM,MAAM,4BAA4B,GAAG,eAAe,GAAG,mBAAmB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3G;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,yFAOjC,4BAA4B,KAAG,SAuCjC,CAAC"}
@@ -2,11 +2,12 @@ import '@dxos-theme';
2
2
  import React from 'react';
3
3
  declare const _default: {
4
4
  title: string;
5
- component: () => React.JSX.Element | null;
6
- decorators: import("@storybook/react/*").Decorator[];
5
+ render: () => React.JSX.Element | null;
7
6
  };
8
7
  export default _default;
9
- export declare const Default: {};
8
+ export declare const Default: {
9
+ decorators: import("@storybook/react/*").Decorator[];
10
+ };
10
11
  export declare const Multiple: {
11
12
  decorators: import("@storybook/react/*").Decorator[];
12
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"withClientProvider.stories.d.ts","sourceRoot":"","sources":["../../../../src/testing/withClientProvider.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AA+B1B,wBAIE;AAEF,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,eAAO,MAAM,QAAQ;;CAUpB,CAAC"}
1
+ {"version":3,"file":"withClientProvider.stories.d.ts","sourceRoot":"","sources":["../../../../src/testing/withClientProvider.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;AAgC1B,wBAGE;AAaF,eAAO,MAAM,OAAO;;CAEnB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAMpB,CAAC"}
package/package.json CHANGED
@@ -1,65 +1,73 @@
1
1
  {
2
2
  "name": "@dxos/react-client",
3
- "version": "0.6.11",
3
+ "version": "0.6.12-main.2d19bf1",
4
4
  "description": "React client API",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
7
  "license": "MIT",
8
8
  "author": "DXOS.org",
9
9
  "exports": {
10
- ".": {
11
- "browser": "./dist/lib/browser/index.mjs",
12
- "node": {
13
- "default": "./dist/lib/node/index.cjs"
14
- },
15
- "types": "./dist/types/src/index.d.ts"
16
- },
17
10
  "./devtools": {
18
11
  "browser": "./dist/lib/browser/devtools/index.mjs",
19
12
  "node": {
20
- "default": "./dist/lib/node/devtools/index.cjs"
13
+ "require": "./dist/lib/node/devtools/index.cjs",
14
+ "default": "./dist/lib/node-esm/devtools/index.mjs"
21
15
  },
22
16
  "types": "./dist/types/src/devtools/index.d.ts"
23
17
  },
24
18
  "./echo": {
25
19
  "browser": "./dist/lib/browser/echo/index.mjs",
26
20
  "node": {
27
- "default": "./dist/lib/node/echo/index.cjs"
21
+ "require": "./dist/lib/node/echo/index.cjs",
22
+ "default": "./dist/lib/node-esm/echo/index.mjs"
28
23
  },
29
24
  "types": "./dist/types/src/echo/index.d.ts"
30
25
  },
31
26
  "./halo": {
32
27
  "browser": "./dist/lib/browser/halo/index.mjs",
33
28
  "node": {
34
- "default": "./dist/lib/node/halo/index.cjs"
29
+ "require": "./dist/lib/node/halo/index.cjs",
30
+ "default": "./dist/lib/node-esm/halo/index.mjs"
35
31
  },
36
32
  "types": "./dist/types/src/halo/index.d.ts"
37
33
  },
34
+ ".": {
35
+ "browser": "./dist/lib/browser/index.mjs",
36
+ "node": {
37
+ "require": "./dist/lib/node/index.cjs",
38
+ "default": "./dist/lib/node-esm/index.mjs"
39
+ },
40
+ "types": "./dist/types/src/index.d.ts"
41
+ },
38
42
  "./invitations": {
39
43
  "browser": "./dist/lib/browser/invitations/index.mjs",
40
44
  "node": {
41
- "default": "./dist/lib/node/invitations/index.cjs"
45
+ "require": "./dist/lib/node/invitations/index.cjs",
46
+ "default": "./dist/lib/node-esm/invitations/index.mjs"
42
47
  },
43
48
  "types": "./dist/types/src/invitations/index.d.ts"
44
49
  },
45
50
  "./mesh": {
46
51
  "browser": "./dist/lib/browser/mesh/index.mjs",
47
52
  "node": {
48
- "default": "./dist/lib/node/mesh/index.cjs"
53
+ "require": "./dist/lib/node/mesh/index.cjs",
54
+ "default": "./dist/lib/node-esm/mesh/index.mjs"
49
55
  },
50
56
  "types": "./dist/types/src/mesh/index.d.ts"
51
57
  },
52
58
  "./testing": {
53
59
  "browser": "./dist/lib/browser/testing/index.mjs",
54
60
  "node": {
55
- "default": "./dist/lib/node/testing/index.cjs"
61
+ "require": "./dist/lib/node/testing/index.cjs",
62
+ "default": "./dist/lib/node-esm/testing/index.mjs"
56
63
  },
57
64
  "types": "./dist/types/src/testing/index.d.ts"
58
65
  },
59
66
  "./worker": {
60
67
  "browser": "./dist/lib/browser/worker.mjs",
61
68
  "node": {
62
- "default": "./dist/lib/node/worker.cjs"
69
+ "require": "./dist/lib/node/worker.cjs",
70
+ "default": "./dist/lib/node-esm/worker.mjs"
63
71
  },
64
72
  "types": "./dist/types/src/worker.d.ts"
65
73
  }
@@ -92,19 +100,19 @@
92
100
  },
93
101
  "dependencies": {
94
102
  "react-error-boundary": "^4.0.13",
95
- "@dxos/async": "0.6.11",
96
- "@dxos/client": "0.6.11",
97
- "@dxos/codec-protobuf": "0.6.11",
98
- "@dxos/config": "0.6.11",
99
- "@dxos/debug": "0.6.11",
100
- "@dxos/echo-schema": "0.6.11",
101
- "@dxos/echo-signals": "0.6.11",
102
- "@dxos/invariant": "0.6.11",
103
- "@dxos/log": "0.6.11",
104
- "@dxos/node-std": "0.6.11",
105
- "@dxos/protocols": "0.6.11",
106
- "@dxos/react-hooks": "0.6.11",
107
- "@dxos/util": "0.6.11"
103
+ "@dxos/async": "0.6.12-main.2d19bf1",
104
+ "@dxos/client": "0.6.12-main.2d19bf1",
105
+ "@dxos/codec-protobuf": "0.6.12-main.2d19bf1",
106
+ "@dxos/echo-schema": "0.6.12-main.2d19bf1",
107
+ "@dxos/debug": "0.6.12-main.2d19bf1",
108
+ "@dxos/echo-signals": "0.6.12-main.2d19bf1",
109
+ "@dxos/invariant": "0.6.12-main.2d19bf1",
110
+ "@dxos/config": "0.6.12-main.2d19bf1",
111
+ "@dxos/log": "0.6.12-main.2d19bf1",
112
+ "@dxos/node-std": "0.6.12-main.2d19bf1",
113
+ "@dxos/react-hooks": "0.6.12-main.2d19bf1",
114
+ "@dxos/protocols": "0.6.12-main.2d19bf1",
115
+ "@dxos/util": "0.6.12-main.2d19bf1"
108
116
  },
109
117
  "devDependencies": {
110
118
  "@testing-library/dom": "^8.17.1",
@@ -114,20 +122,21 @@
114
122
  "@types/react-dom": "~18.2.0",
115
123
  "react": "~18.2.0",
116
124
  "react-dom": "~18.2.0",
117
- "@dxos/react-ui-syntax-highlighter": "0.6.11",
118
- "@dxos/random": "0.6.11",
119
- "@dxos/react-ui": "0.6.11",
120
- "@dxos/react-ui-theme": "0.6.11",
121
- "@dxos/storybook-utils": "0.6.11"
125
+ "@dxos/random": "0.6.12-main.2d19bf1",
126
+ "@dxos/react-ui": "0.6.12-main.2d19bf1",
127
+ "@dxos/react-ui-theme": "0.6.12-main.2d19bf1",
128
+ "@dxos/storybook-utils": "0.6.12-main.2d19bf1",
129
+ "@dxos/test-utils": "0.6.12-main.2d19bf1",
130
+ "@dxos/react-ui-syntax-highlighter": "0.6.12-main.2d19bf1"
122
131
  },
123
132
  "peerDependencies": {
124
- "react": "^18.0.0",
125
- "react-dom": "^18.0.0",
126
- "@dxos/react-ui": "0.6.11",
127
- "@dxos/react-ui-theme": "0.6.11"
133
+ "react": "~18.2.0",
134
+ "react-dom": "~18.2.0",
135
+ "@dxos/react-ui": "0.6.12-main.2d19bf1",
136
+ "@dxos/react-ui-theme": "0.6.12-main.2d19bf1"
128
137
  },
129
138
  "optionalDependencies": {
130
- "@dxos/random": "0.6.11"
139
+ "@dxos/random": "0.6.12-main.2d19bf1"
131
140
  },
132
141
  "publishConfig": {
133
142
  "access": "public"
package/project.json CHANGED
@@ -26,32 +26,13 @@
26
26
  "dependsOn": [
27
27
  "^compile",
28
28
  "stories:mkdist"
29
- ],
30
- "options": {
31
- "playwrightConfigPath": "{projectRoot}/src/playwright/playwright.config.ts",
32
- "serve": "stories:storybook-e2e",
33
- "testPatterns": [
34
- "{projectRoot}/src/playwright/**/*.spec.{ts,js}"
35
- ],
36
- "timeout": 60000,
37
- "watchPatterns": [
38
- "{projectRoot}/src/**/*"
39
- ]
40
- }
29
+ ]
41
30
  },
42
31
  "lint": {},
43
- "test": {
44
- "options": {
45
- "ciEnvironments": [
46
- "nodejs"
47
- ],
48
- "domRequired": true,
49
- "forceExit": true
50
- }
51
- }
32
+ "test": {}
52
33
  },
53
34
  "implicitDependencies": [
54
35
  "esbuild",
55
- "test"
36
+ "node-std"
56
37
  ]
57
38
  }
@@ -2,14 +2,13 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import { renderHook, screen, render, act } from '@testing-library/react';
6
- import expect from 'expect';
5
+ import { renderHook, screen, render, act, cleanup } from '@testing-library/react';
7
6
  import React, { Component, type PropsWithChildren } from 'react';
7
+ import { afterEach, beforeEach, describe, expect, test } from 'vitest';
8
8
 
9
9
  import { waitForCondition } from '@dxos/async';
10
10
  import { Client, Config, SystemStatus, fromHost } from '@dxos/client';
11
11
  import { log } from '@dxos/log';
12
- import { describe, test } from '@dxos/test';
13
12
 
14
13
  import { ClientProvider } from './ClientProvider';
15
14
  import { useClient } from './useClient';
@@ -97,6 +96,10 @@ describe('ClientProvider', () => {
97
96
  await client.halo.createIdentity({ displayName: 'test-user' });
98
97
  });
99
98
 
99
+ afterEach(() => {
100
+ cleanup();
101
+ });
102
+
100
103
  test('Renders with children', async () => {
101
104
  render(
102
105
  <ClientProvider client={client}>
@@ -148,7 +151,7 @@ describe('ClientProvider', () => {
148
151
 
149
152
  await act(async () => {
150
153
  await waitForCondition({
151
- condition: () => newClient.status.get() === SystemStatus.ACTIVE && !client.initialized,
154
+ condition: () => !client.initialized && newClient.status.get() === SystemStatus.ACTIVE,
152
155
  });
153
156
  });
154
157
  expect(client.initialized).toBe(false);