@verdant-web/react 31.0.0 → 33.0.0

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/esm/hooks.js CHANGED
@@ -10,8 +10,9 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { stableStringify, } from '@verdant-web/common';
13
14
  import { EntityFile, } from '@verdant-web/store';
14
- import { createContext, useCallback, useContext, useEffect, useMemo, useState, useSyncExternalStore, } from 'react';
15
+ import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore, } from 'react';
15
16
  import { suspend } from 'suspend-react';
16
17
  import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js';
17
18
  function isQueryCurrentValid(query) {
@@ -49,6 +50,14 @@ function useLiveQueryStatus(liveQuery) {
49
50
  function capitalize(str) {
50
51
  return (str.charAt(0).toUpperCase() + str.slice(1));
51
52
  }
53
+ function useStableIndex(index) {
54
+ const indexRef = useRef(index);
55
+ const mismatch = stableStringify(indexRef.current) !== stableStringify(index);
56
+ if (mismatch) {
57
+ indexRef.current = index;
58
+ }
59
+ return indexRef.current;
60
+ }
52
61
  export function createHooks(schema, options = {}) {
53
62
  var _a;
54
63
  const Context = (_a = options.Context) !== null && _a !== void 0 ? _a : createContext(null);
@@ -59,10 +68,20 @@ export function createHooks(schema, options = {}) {
59
68
  }
60
69
  return suspend(() => ctx.readyPromise, ['lofi_' + ctx.namespace]);
61
70
  }
62
- function useWatch(liveObject, prop) {
71
+ function useWatch(liveObject, options) {
63
72
  return useSyncExternalStore((handler) => {
64
73
  if (liveObject) {
65
- return liveObject.subscribe('change', handler);
74
+ if ('isFile' in liveObject) {
75
+ return liveObject.subscribe('change', handler);
76
+ }
77
+ else {
78
+ if (options === null || options === void 0 ? void 0 : options.deep) {
79
+ return liveObject.subscribe('change', handler);
80
+ }
81
+ else {
82
+ return liveObject.subscribe('change', handler);
83
+ }
84
+ }
66
85
  }
67
86
  return () => { };
68
87
  }, () => {
@@ -71,15 +90,37 @@ export function createHooks(schema, options = {}) {
71
90
  return liveObject.url;
72
91
  }
73
92
  else {
74
- if (prop) {
75
- return liveObject.get(prop);
76
- }
77
93
  return liveObject.getAll();
78
94
  }
79
95
  }
80
96
  return undefined;
81
97
  });
82
98
  }
99
+ function useOnChange(liveObject, handler, options) {
100
+ const handlerRef = useRef(handler);
101
+ handlerRef.current = handler;
102
+ return useEffect(() => {
103
+ if (!liveObject)
104
+ return;
105
+ if ('isFile' in liveObject) {
106
+ return liveObject === null || liveObject === void 0 ? void 0 : liveObject.subscribe('change', () => {
107
+ handlerRef.current({});
108
+ });
109
+ }
110
+ else {
111
+ if (options === null || options === void 0 ? void 0 : options.deep) {
112
+ return liveObject === null || liveObject === void 0 ? void 0 : liveObject.subscribe('changeDeep', (target, info) => {
113
+ handlerRef.current(Object.assign(Object.assign({}, info), { target: target }));
114
+ });
115
+ }
116
+ return liveObject === null || liveObject === void 0 ? void 0 : liveObject.subscribe('change', (info) => {
117
+ var _a;
118
+ (_a = info.isLocal) !== null && _a !== void 0 ? _a : (info.isLocal = false);
119
+ handlerRef.current(info);
120
+ });
121
+ }
122
+ }, [liveObject, handlerRef]);
123
+ }
83
124
  function useSelf() {
84
125
  const storage = useStorage();
85
126
  return useSyncExternalStore((callback) => storage.sync.presence.subscribe('selfChanged', callback), () => storage.sync.presence.self);
@@ -242,6 +283,7 @@ export function createHooks(schema, options = {}) {
242
283
  useClient: useStorage,
243
284
  useUnsuspendedClient,
244
285
  useWatch,
286
+ useOnChange,
245
287
  useSelf,
246
288
  usePeerIds,
247
289
  usePeer,
@@ -285,16 +327,18 @@ export function createHooks(schema, options = {}) {
285
327
  return { data, status };
286
328
  };
287
329
  const findOneHookName = `useOne${capitalize(collection.name)}`;
288
- hooks[findOneHookName] = function useOne({ skip, index, key, } = {}) {
330
+ hooks[findOneHookName] = function useOne({ skip, index: unstableIndex, key, } = {}) {
289
331
  const storage = useStorage();
332
+ const index = useStableIndex(unstableIndex);
290
333
  const liveQuery = useMemo(() => {
291
334
  return skip ? null : storage[pluralName].findOne({ index, key });
292
335
  }, [index, skip]);
293
336
  const data = useLiveQuery(liveQuery);
294
337
  return data;
295
338
  };
296
- hooks[findOneHookName + 'Unsuspended'] = function useOneUnsuspended({ skip, index, key, } = {}) {
339
+ hooks[findOneHookName + 'Unsuspended'] = function useOneUnsuspended({ skip, index: unstableIndex, key, } = {}) {
297
340
  const storage = useStorage();
341
+ const index = useStableIndex(unstableIndex);
298
342
  const liveQuery = useMemo(() => {
299
343
  return skip ? null : storage[pluralName].findOne({ index, key });
300
344
  }, [index, skip]);
@@ -303,16 +347,18 @@ export function createHooks(schema, options = {}) {
303
347
  return { data, status };
304
348
  };
305
349
  const getAllHookName = `useAll${capitalize(pluralName)}`;
306
- hooks[getAllHookName] = function useAll({ index, skip, key, } = {}) {
350
+ hooks[getAllHookName] = function useAll({ index: unstableIndex, skip, key, } = {}) {
307
351
  const storage = useStorage();
352
+ const index = useStableIndex(unstableIndex);
308
353
  // assumptions: this query getter is fast and returns the same
309
354
  // query identity for subsequent calls.
310
355
  const liveQuery = useMemo(() => (skip ? null : storage[pluralName].findAll({ index, key })), [index, skip]);
311
356
  const data = useLiveQuery(liveQuery);
312
357
  return data || [];
313
358
  };
314
- hooks[getAllHookName + 'Unsuspended'] = function useAllUnsuspended({ index, skip, key, } = {}) {
359
+ hooks[getAllHookName + 'Unsuspended'] = function useAllUnsuspended({ index: unstableIndex, skip, key, } = {}) {
315
360
  const storage = useStorage();
361
+ const index = useStableIndex(unstableIndex);
316
362
  // assumptions: this query getter is fast and returns the same
317
363
  // query identity for subsequent calls.
318
364
  const liveQuery = useMemo(() => (skip ? null : storage[pluralName].findAll({ index, key })), [index, skip]);
@@ -321,8 +367,9 @@ export function createHooks(schema, options = {}) {
321
367
  return { data, status };
322
368
  };
323
369
  const getAllPaginatedHookName = `useAll${capitalize(pluralName)}Paginated`;
324
- hooks[getAllPaginatedHookName] = function useAllPaginated({ index, skip, pageSize = 10, key, suspend, } = {}) {
370
+ hooks[getAllPaginatedHookName] = function useAllPaginated({ index: unstableIndex, skip, pageSize = 10, key, suspend, } = {}) {
325
371
  const storage = useStorage();
372
+ const index = useStableIndex(unstableIndex);
326
373
  // assumptions: this query getter is fast and returns the same
327
374
  // query identity for subsequent calls.
328
375
  const liveQuery = useMemo(() => skip
@@ -350,8 +397,9 @@ export function createHooks(schema, options = {}) {
350
397
  return [data, tools];
351
398
  };
352
399
  const getAllInfiniteHookName = `useAll${capitalize(pluralName)}Infinite`;
353
- hooks[getAllInfiniteHookName] = function useAllInfinite({ index, skip, pageSize = 10, key, suspend, } = {}) {
400
+ hooks[getAllInfiniteHookName] = function useAllInfinite({ index: unstableIndex, skip, pageSize = 10, key, suspend, } = {}) {
354
401
  const storage = useStorage();
402
+ const index = useStableIndex(unstableIndex);
355
403
  // assumptions: this query getter is fast and returns the same
356
404
  // query identity for subsequent calls.
357
405
  const liveQuery = useMemo(() => skip
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.tsx"],"names":[],"mappings":"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"}
@@ -1,37 +1,31 @@
1
- import { collection, schema } from '@verdant-web/store';
1
+ import { schema } from '@verdant-web/store';
2
2
  import { describe, it, expect } from 'vitest';
3
3
  import { createHooks } from './hooks.js';
4
4
  describe('generated hooks', () => {
5
5
  it('should create singular and plural hooks for all collections', () => {
6
- const authors = collection({
6
+ const authors = schema.collection({
7
7
  name: 'author',
8
8
  primaryKey: 'id',
9
9
  fields: {
10
10
  id: {
11
11
  type: 'string',
12
- indexed: true,
13
12
  },
14
13
  name: {
15
14
  type: 'string',
16
15
  },
17
16
  },
18
- compounds: {},
19
- synthetics: {},
20
17
  });
21
- const tallies = collection({
18
+ const tallies = schema.collection({
22
19
  name: 'tally',
23
20
  primaryKey: 'id',
24
21
  fields: {
25
22
  id: {
26
23
  type: 'string',
27
- indexed: true,
28
24
  },
29
25
  count: {
30
26
  type: 'number',
31
27
  },
32
28
  },
33
- compounds: {},
34
- synthetics: {},
35
29
  });
36
30
  const testSchema = schema({
37
31
  version: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.test.js","sourceRoot":"","sources":["../../src/hooks.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACtE,MAAM,OAAO,GAAG,UAAU,CAAC;YAC1B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACP,EAAE,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI;iBACb;gBACD,IAAI,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACd;aACD;YACD,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACd,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,CAAC;YAC1B,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACP,EAAE,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI;iBACb;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,QAAQ;iBACd;aACD;YACD,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACd,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC;YACzB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE;gBACZ,OAAO;gBACP,OAAO;aACP;SACD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"hooks.test.js","sourceRoot":"","sources":["../../src/hooks.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;YACjC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACP,EAAE,EAAE;oBACH,IAAI,EAAE,QAAQ;iBACd;gBACD,IAAI,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACd;aACD;SACD,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;YACjC,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACP,EAAE,EAAE;oBACH,IAAI,EAAE,QAAQ;iBACd;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,QAAQ;iBACd;aACD;SACD,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC;YACzB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE;gBACZ,OAAO;gBACP,OAAO;aACP;SACD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdant-web/react",
3
- "version": "31.0.0",
3
+ "version": "33.0.0",
4
4
  "access": "public",
5
5
  "type": "module",
6
6
  "exports": {
@@ -17,13 +17,13 @@
17
17
  "src/"
18
18
  ],
19
19
  "peerDependencies": {
20
- "@verdant-web/store": "^3.6.0",
20
+ "@verdant-web/store": "^3.7.0",
21
21
  "react": "^18.2.0"
22
22
  },
23
23
  "dependencies": {
24
24
  "suspend-react": "^0.0.8",
25
25
  "use-sync-external-store": "^1.2.0",
26
- "@verdant-web/common": "2.3.1"
26
+ "@verdant-web/common": "2.3.2"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/react": "^18.0.17",
@@ -33,7 +33,7 @@
33
33
  "react": "^18.2.0",
34
34
  "typescript": "^5.4.2",
35
35
  "vitest": "^1.1.0",
36
- "@verdant-web/store": "3.6.0"
36
+ "@verdant-web/store": "3.7.0"
37
37
  },
38
38
  "scripts": {
39
39
  "build": "tsc -p tsconfig.json",
package/src/hooks.test.ts CHANGED
@@ -1,38 +1,32 @@
1
- import { collection, schema } from '@verdant-web/store';
1
+ import { schema } from '@verdant-web/store';
2
2
  import { describe, it, expect } from 'vitest';
3
3
  import { createHooks } from './hooks.js';
4
4
 
5
5
  describe('generated hooks', () => {
6
6
  it('should create singular and plural hooks for all collections', () => {
7
- const authors = collection({
7
+ const authors = schema.collection({
8
8
  name: 'author',
9
9
  primaryKey: 'id',
10
10
  fields: {
11
11
  id: {
12
12
  type: 'string',
13
- indexed: true,
14
13
  },
15
14
  name: {
16
15
  type: 'string',
17
16
  },
18
17
  },
19
- compounds: {},
20
- synthetics: {},
21
18
  });
22
- const tallies = collection({
19
+ const tallies = schema.collection({
23
20
  name: 'tally',
24
21
  primaryKey: 'id',
25
22
  fields: {
26
23
  id: {
27
24
  type: 'string',
28
- indexed: true,
29
25
  },
30
26
  count: {
31
27
  type: 'number',
32
28
  },
33
29
  },
34
- compounds: {},
35
- synthetics: {},
36
30
  });
37
31
  const testSchema = schema({
38
32
  version: 1,
package/src/hooks.tsx CHANGED
@@ -1,4 +1,8 @@
1
- import { CollectionIndexFilter, StorageSchema } from '@verdant-web/common';
1
+ import {
2
+ CollectionIndexFilter,
3
+ stableStringify,
4
+ StorageSchema,
5
+ } from '@verdant-web/common';
2
6
  import {
3
7
  Query,
4
8
  SyncTransportMode,
@@ -17,6 +21,7 @@ import {
17
21
  useContext,
18
22
  useEffect,
19
23
  useMemo,
24
+ useRef,
20
25
  useState,
21
26
  useSyncExternalStore,
22
27
  } from 'react';
@@ -63,6 +68,15 @@ function capitalize<T extends string>(str: T) {
63
68
  return (str.charAt(0).toUpperCase() + str.slice(1)) as Capitalize<T>;
64
69
  }
65
70
 
71
+ function useStableIndex(index: CollectionIndexFilter | undefined) {
72
+ const indexRef = useRef(index);
73
+ const mismatch = stableStringify(indexRef.current) !== stableStringify(index);
74
+ if (mismatch) {
75
+ indexRef.current = index;
76
+ }
77
+ return indexRef.current;
78
+ }
79
+
66
80
  type HookName = `use${string}`;
67
81
 
68
82
  export function createHooks<Presence = any, Profile = any>(
@@ -84,11 +98,22 @@ export function createHooks<Presence = any, Profile = any>(
84
98
  return suspend(() => ctx.readyPromise, ['lofi_' + ctx.namespace]) as any;
85
99
  }
86
100
 
87
- function useWatch(liveObject: Entity | EntityFile | null, prop?: any) {
101
+ function useWatch(
102
+ liveObject: Entity | EntityFile | null,
103
+ options?: { deep?: boolean },
104
+ ) {
88
105
  return useSyncExternalStore(
89
106
  (handler) => {
90
107
  if (liveObject) {
91
- return (liveObject as any).subscribe('change', handler);
108
+ if ('isFile' in liveObject) {
109
+ return liveObject.subscribe('change', handler);
110
+ } else {
111
+ if (options?.deep) {
112
+ return liveObject.subscribe('change', handler);
113
+ } else {
114
+ return liveObject.subscribe('change', handler);
115
+ }
116
+ }
92
117
  }
93
118
  return () => {};
94
119
  },
@@ -97,10 +122,6 @@ export function createHooks<Presence = any, Profile = any>(
97
122
  if (liveObject instanceof EntityFile) {
98
123
  return liveObject.url;
99
124
  } else {
100
- if (prop) {
101
- return liveObject.get(prop);
102
- }
103
-
104
125
  return liveObject.getAll();
105
126
  }
106
127
  }
@@ -110,6 +131,35 @@ export function createHooks<Presence = any, Profile = any>(
110
131
  );
111
132
  }
112
133
 
134
+ function useOnChange(
135
+ liveObject: Entity | EntityFile | null,
136
+ handler: (info: { isLocal?: boolean; target?: Entity }) => void,
137
+ options?: { deep?: boolean },
138
+ ) {
139
+ const handlerRef = useRef(handler);
140
+ handlerRef.current = handler;
141
+
142
+ return useEffect(() => {
143
+ if (!liveObject) return;
144
+
145
+ if ('isFile' in liveObject) {
146
+ return liveObject?.subscribe('change', () => {
147
+ handlerRef.current({});
148
+ });
149
+ } else {
150
+ if (options?.deep) {
151
+ return liveObject?.subscribe('changeDeep', (target, info) => {
152
+ handlerRef.current({ ...info, target: target as Entity });
153
+ });
154
+ }
155
+ return liveObject?.subscribe('change', (info) => {
156
+ info.isLocal ??= false;
157
+ handlerRef.current(info);
158
+ });
159
+ }
160
+ }, [liveObject, handlerRef]);
161
+ }
162
+
113
163
  function useSelf() {
114
164
  const storage = useStorage();
115
165
  return useSyncExternalStore(
@@ -350,6 +400,7 @@ export function createHooks<Presence = any, Profile = any>(
350
400
  useClient: useStorage,
351
401
  useUnsuspendedClient,
352
402
  useWatch,
403
+ useOnChange,
353
404
  useSelf,
354
405
  usePeerIds,
355
406
  usePeer,
@@ -418,7 +469,7 @@ export function createHooks<Presence = any, Profile = any>(
418
469
  const findOneHookName = `useOne${capitalize(collection.name)}`;
419
470
  hooks[findOneHookName] = function useOne({
420
471
  skip,
421
- index,
472
+ index: unstableIndex,
422
473
  key,
423
474
  }: {
424
475
  index?: CollectionIndexFilter;
@@ -426,6 +477,7 @@ export function createHooks<Presence = any, Profile = any>(
426
477
  key?: string;
427
478
  } = {}) {
428
479
  const storage = useStorage();
480
+ const index = useStableIndex(unstableIndex);
429
481
  const liveQuery = useMemo(() => {
430
482
  return skip ? null : storage[pluralName].findOne({ index, key });
431
483
  }, [index, skip]);
@@ -434,7 +486,7 @@ export function createHooks<Presence = any, Profile = any>(
434
486
  };
435
487
  hooks[findOneHookName + 'Unsuspended'] = function useOneUnsuspended({
436
488
  skip,
437
- index,
489
+ index: unstableIndex,
438
490
  key,
439
491
  }: {
440
492
  index?: CollectionIndexFilter;
@@ -442,6 +494,7 @@ export function createHooks<Presence = any, Profile = any>(
442
494
  key?: string;
443
495
  } = {}) {
444
496
  const storage = useStorage();
497
+ const index = useStableIndex(unstableIndex);
445
498
  const liveQuery = useMemo(() => {
446
499
  return skip ? null : storage[pluralName].findOne({ index, key });
447
500
  }, [index, skip]);
@@ -453,7 +506,7 @@ export function createHooks<Presence = any, Profile = any>(
453
506
 
454
507
  const getAllHookName = `useAll${capitalize(pluralName)}`;
455
508
  hooks[getAllHookName] = function useAll({
456
- index,
509
+ index: unstableIndex,
457
510
  skip,
458
511
  key,
459
512
  }: {
@@ -462,6 +515,7 @@ export function createHooks<Presence = any, Profile = any>(
462
515
  key?: string;
463
516
  } = {}) {
464
517
  const storage = useStorage();
518
+ const index = useStableIndex(unstableIndex);
465
519
  // assumptions: this query getter is fast and returns the same
466
520
  // query identity for subsequent calls.
467
521
  const liveQuery = useMemo(
@@ -472,7 +526,7 @@ export function createHooks<Presence = any, Profile = any>(
472
526
  return data || [];
473
527
  };
474
528
  hooks[getAllHookName + 'Unsuspended'] = function useAllUnsuspended({
475
- index,
529
+ index: unstableIndex,
476
530
  skip,
477
531
  key,
478
532
  }: {
@@ -481,6 +535,7 @@ export function createHooks<Presence = any, Profile = any>(
481
535
  key?: string;
482
536
  } = {}) {
483
537
  const storage = useStorage();
538
+ const index = useStableIndex(unstableIndex);
484
539
  // assumptions: this query getter is fast and returns the same
485
540
  // query identity for subsequent calls.
486
541
  const liveQuery = useMemo(
@@ -495,7 +550,7 @@ export function createHooks<Presence = any, Profile = any>(
495
550
 
496
551
  const getAllPaginatedHookName = `useAll${capitalize(pluralName)}Paginated`;
497
552
  hooks[getAllPaginatedHookName] = function useAllPaginated({
498
- index,
553
+ index: unstableIndex,
499
554
  skip,
500
555
  pageSize = 10,
501
556
  key,
@@ -508,6 +563,7 @@ export function createHooks<Presence = any, Profile = any>(
508
563
  suspend?: false;
509
564
  } = {}) {
510
565
  const storage = useStorage();
566
+ const index = useStableIndex(unstableIndex);
511
567
  // assumptions: this query getter is fast and returns the same
512
568
  // query identity for subsequent calls.
513
569
  const liveQuery = useMemo(
@@ -548,7 +604,7 @@ export function createHooks<Presence = any, Profile = any>(
548
604
  };
549
605
  const getAllInfiniteHookName = `useAll${capitalize(pluralName)}Infinite`;
550
606
  hooks[getAllInfiniteHookName] = function useAllInfinite({
551
- index,
607
+ index: unstableIndex,
552
608
  skip,
553
609
  pageSize = 10,
554
610
  key,
@@ -561,6 +617,7 @@ export function createHooks<Presence = any, Profile = any>(
561
617
  suspend?: false;
562
618
  } = {}) {
563
619
  const storage = useStorage();
620
+ const index = useStableIndex(unstableIndex);
564
621
  // assumptions: this query getter is fast and returns the same
565
622
  // query identity for subsequent calls.
566
623
  const liveQuery = useMemo(