@dxos/react-client 0.7.5-labs.f5080a1 → 0.7.5-labs.ff2ff30
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/lib/browser/{chunk-LVTCEDI2.mjs → chunk-72QD3PXL.mjs} +3 -3
- package/dist/lib/browser/{chunk-LVTCEDI2.mjs.map → chunk-72QD3PXL.mjs.map} +2 -2
- package/dist/lib/browser/devtools/index.mjs +1 -1
- package/dist/lib/browser/echo/index.mjs +37 -3
- package/dist/lib/browser/echo/index.mjs.map +4 -4
- package/dist/lib/browser/halo/index.mjs +1 -1
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/mesh/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/lib/node/{chunk-Y2HFUT7P.cjs → chunk-5RUIFUEC.cjs} +5 -5
- package/dist/lib/node/{chunk-Y2HFUT7P.cjs.map → chunk-5RUIFUEC.cjs.map} +2 -2
- package/dist/lib/node/devtools/index.cjs +2 -2
- package/dist/lib/node/echo/index.cjs +41 -8
- package/dist/lib/node/echo/index.cjs.map +4 -4
- package/dist/lib/node/halo/index.cjs +6 -6
- package/dist/lib/node/index.cjs +12 -12
- package/dist/lib/node/mesh/index.cjs +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +4 -4
- package/dist/lib/node-esm/{chunk-MXY3GJGN.mjs → chunk-NBTZZNQ5.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-MXY3GJGN.mjs.map → chunk-NBTZZNQ5.mjs.map} +2 -2
- package/dist/lib/node-esm/devtools/index.mjs +1 -1
- package/dist/lib/node-esm/echo/index.mjs +37 -3
- package/dist/lib/node-esm/echo/index.mjs.map +4 -4
- package/dist/lib/node-esm/halo/index.mjs +1 -1
- package/dist/lib/node-esm/index.mjs +1 -1
- package/dist/lib/node-esm/mesh/index.mjs +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +1 -1
- package/dist/types/src/echo/index.d.ts +1 -0
- package/dist/types/src/echo/index.d.ts.map +1 -1
- package/dist/types/src/echo/useSchema.d.ts +7 -0
- package/dist/types/src/echo/useSchema.d.ts.map +1 -0
- package/package.json +23 -23
- package/src/client/ClientProvider.tsx +2 -2
- package/src/echo/index.ts +1 -0
- package/src/echo/useSchema.ts +39 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-client",
|
|
3
|
-
"version": "0.7.5-labs.
|
|
3
|
+
"version": "0.7.5-labs.ff2ff30",
|
|
4
4
|
"description": "React client API",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -77,40 +77,40 @@
|
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
79
|
"react-error-boundary": "^4.0.13",
|
|
80
|
-
"@dxos/async": "0.7.5-labs.
|
|
81
|
-
"@dxos/client": "0.7.5-labs.
|
|
82
|
-
"@dxos/codec-protobuf": "0.7.5-labs.
|
|
83
|
-
"@dxos/
|
|
84
|
-
"@dxos/
|
|
85
|
-
"@dxos/echo-schema": "0.7.5-labs.
|
|
86
|
-
"@dxos/echo-signals": "0.7.5-labs.
|
|
87
|
-
"@dxos/
|
|
88
|
-
"@dxos/
|
|
89
|
-
"@dxos/protocols": "0.7.5-labs.
|
|
90
|
-
"@dxos/
|
|
91
|
-
"@dxos/react-hooks": "0.7.5-labs.
|
|
92
|
-
"@dxos/util": "0.7.5-labs.
|
|
80
|
+
"@dxos/async": "0.7.5-labs.ff2ff30",
|
|
81
|
+
"@dxos/client": "0.7.5-labs.ff2ff30",
|
|
82
|
+
"@dxos/codec-protobuf": "0.7.5-labs.ff2ff30",
|
|
83
|
+
"@dxos/debug": "0.7.5-labs.ff2ff30",
|
|
84
|
+
"@dxos/config": "0.7.5-labs.ff2ff30",
|
|
85
|
+
"@dxos/echo-schema": "0.7.5-labs.ff2ff30",
|
|
86
|
+
"@dxos/echo-signals": "0.7.5-labs.ff2ff30",
|
|
87
|
+
"@dxos/log": "0.7.5-labs.ff2ff30",
|
|
88
|
+
"@dxos/node-std": "0.7.5-labs.ff2ff30",
|
|
89
|
+
"@dxos/protocols": "0.7.5-labs.ff2ff30",
|
|
90
|
+
"@dxos/invariant": "0.7.5-labs.ff2ff30",
|
|
91
|
+
"@dxos/react-hooks": "0.7.5-labs.ff2ff30",
|
|
92
|
+
"@dxos/util": "0.7.5-labs.ff2ff30"
|
|
93
93
|
},
|
|
94
94
|
"devDependencies": {
|
|
95
95
|
"@types/react": "~18.2.0",
|
|
96
96
|
"@types/react-dom": "~18.2.0",
|
|
97
97
|
"react": "~18.2.0",
|
|
98
98
|
"react-dom": "~18.2.0",
|
|
99
|
-
"@dxos/random": "0.7.5-labs.
|
|
100
|
-
"@dxos/react-ui": "0.7.5-labs.
|
|
101
|
-
"@dxos/react-ui-syntax-highlighter": "0.7.5-labs.
|
|
102
|
-
"@dxos/react-ui-theme": "0.7.5-labs.
|
|
103
|
-
"@dxos/storybook-utils": "0.7.5-labs.
|
|
104
|
-
"@dxos/test-utils": "0.7.5-labs.
|
|
99
|
+
"@dxos/random": "0.7.5-labs.ff2ff30",
|
|
100
|
+
"@dxos/react-ui": "0.7.5-labs.ff2ff30",
|
|
101
|
+
"@dxos/react-ui-syntax-highlighter": "0.7.5-labs.ff2ff30",
|
|
102
|
+
"@dxos/react-ui-theme": "0.7.5-labs.ff2ff30",
|
|
103
|
+
"@dxos/storybook-utils": "0.7.5-labs.ff2ff30",
|
|
104
|
+
"@dxos/test-utils": "0.7.5-labs.ff2ff30"
|
|
105
105
|
},
|
|
106
106
|
"peerDependencies": {
|
|
107
107
|
"react": "~18.2.0",
|
|
108
108
|
"react-dom": "~18.2.0"
|
|
109
109
|
},
|
|
110
110
|
"optionalDependencies": {
|
|
111
|
-
"@dxos/random": "0.7.5-labs.
|
|
112
|
-
"@dxos/react-ui": "0.7.5-labs.
|
|
113
|
-
"@dxos/react-ui-theme": "0.7.5-labs.
|
|
111
|
+
"@dxos/random": "0.7.5-labs.ff2ff30",
|
|
112
|
+
"@dxos/react-ui": "0.7.5-labs.ff2ff30",
|
|
113
|
+
"@dxos/react-ui-theme": "0.7.5-labs.ff2ff30"
|
|
114
114
|
},
|
|
115
115
|
"publishConfig": {
|
|
116
116
|
"access": "public"
|
|
@@ -15,7 +15,7 @@ import { Client, type ClientOptions, type ClientServicesProvider, SystemStatus }
|
|
|
15
15
|
import { type Config } from '@dxos/config';
|
|
16
16
|
import { registerSignalsRuntime } from '@dxos/echo-signals/react';
|
|
17
17
|
import { log } from '@dxos/log';
|
|
18
|
-
import {
|
|
18
|
+
import { useControlledState } from '@dxos/react-hooks';
|
|
19
19
|
import { getAsyncProviderValue, type MaybePromise, type Provider } from '@dxos/util';
|
|
20
20
|
|
|
21
21
|
import { ClientContext, type ClientContextProps } from './context';
|
|
@@ -114,7 +114,7 @@ export const ClientProvider = forwardRef<Client | undefined, ClientProviderProps
|
|
|
114
114
|
useImperativeHandle(forwardedRef, () => client, [client]);
|
|
115
115
|
|
|
116
116
|
// Client status subscription.
|
|
117
|
-
const [status, setStatus] =
|
|
117
|
+
const [status, setStatus] = useControlledState(controlledStatus);
|
|
118
118
|
useEffect(() => {
|
|
119
119
|
if (!client) {
|
|
120
120
|
return;
|
package/src/echo/index.ts
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { useMemo, useSyncExternalStore } from 'react';
|
|
6
|
+
|
|
7
|
+
import { type Space } from '@dxos/client/echo';
|
|
8
|
+
import { type EchoSchema } from '@dxos/echo-schema';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Subscribe to and retrieve schema changes from a space's schema registry.
|
|
12
|
+
*/
|
|
13
|
+
export const useSchema = (space: Space | undefined, typename: string | undefined): EchoSchema | undefined => {
|
|
14
|
+
const { subscribe, getSchema } = useMemo(() => {
|
|
15
|
+
if (!typename || !space) {
|
|
16
|
+
return {
|
|
17
|
+
subscribe: () => () => {},
|
|
18
|
+
getSchema: () => undefined,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const query = space.db.schemaRegistry.query({ typename });
|
|
23
|
+
const initialResult = query.runSync()[0];
|
|
24
|
+
let currentSchema = initialResult;
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
subscribe: (onStoreChange: () => void) => {
|
|
28
|
+
const unsubscribe = query.subscribe(() => {
|
|
29
|
+
currentSchema = query.results[0];
|
|
30
|
+
onStoreChange();
|
|
31
|
+
});
|
|
32
|
+
return unsubscribe;
|
|
33
|
+
},
|
|
34
|
+
getSchema: () => currentSchema,
|
|
35
|
+
};
|
|
36
|
+
}, [typename, space]);
|
|
37
|
+
|
|
38
|
+
return useSyncExternalStore(subscribe, getSchema);
|
|
39
|
+
};
|