From 81afdc23abf8d38abf532335b12e26068711c100 Mon Sep 17 00:00:00 2001 From: daveycodez Date: Thu, 16 Oct 2025 14:24:03 -0700 Subject: [PATCH 1/2] Add serverSnapshot fallback to useSyncExternalStore Introduces a serverSnapshot object and passes it as the server snapshot function to useSyncExternalStore in useLiveQuery. This improves compatibility with server-side rendering by providing a default snapshot value. --- packages/react-db/src/useLiveQuery.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/react-db/src/useLiveQuery.ts b/packages/react-db/src/useLiveQuery.ts index 90145d25d..d4921be2a 100644 --- a/packages/react-db/src/useLiveQuery.ts +++ b/packages/react-db/src/useLiveQuery.ts @@ -22,6 +22,11 @@ const DEFAULT_GC_TIME_MS = 1 // Live queries created by useLiveQuery are cleaned export type UseLiveQueryStatus = CollectionStatus | `disabled` +const serverSnapshot = { + collection: null, + version: 0, +} + /** * Create a live query using a query function * @param queryFn - Query function that defines what data to fetch @@ -467,7 +472,8 @@ export function useLiveQuery( // Use useSyncExternalStore to subscribe to collection changes const snapshot = useSyncExternalStore( subscribeRef.current, - getSnapshotRef.current + getSnapshotRef.current, + () => serverSnapshot ) // Track last snapshot (from useSyncExternalStore) and the returned value separately From 671c1e6d30b21c942f1122f6d655e9c47211bacd Mon Sep 17 00:00:00 2001 From: daveycodez Date: Thu, 16 Oct 2025 14:32:27 -0700 Subject: [PATCH 2/2] Make into one liner --- packages/react-db/src/useLiveQuery.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/react-db/src/useLiveQuery.ts b/packages/react-db/src/useLiveQuery.ts index d4921be2a..584b721d3 100644 --- a/packages/react-db/src/useLiveQuery.ts +++ b/packages/react-db/src/useLiveQuery.ts @@ -22,10 +22,7 @@ const DEFAULT_GC_TIME_MS = 1 // Live queries created by useLiveQuery are cleaned export type UseLiveQueryStatus = CollectionStatus | `disabled` -const serverSnapshot = { - collection: null, - version: 0, -} +const serverSnapshot = { collection: null, version: 0 } /** * Create a live query using a query function