@objectstack/client-react 17.2.0 → 17.3.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/CHANGELOG.md CHANGED
@@ -1,5 +1,338 @@
1
1
  # @objectstack/client-react
2
2
 
3
+ ## 17.3.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 1fa05a6: fix(client-react): correct two broken TSDoc `@example` blocks the SDK docs shipped verbatim (#10969)
8
+
9
+ TSDoc `@example` blocks are preserved into the published `dist/*.d.ts` (confirmed by
10
+ building and reading the emitted declarations), so they reach consumers directly in their
11
+ editor's hover tooltip — copying one is the intended usage. Two were actively wrong:
12
+
13
+ - `useAutoRefresh`'s example read `data.map(...)`. `data` is a `PaginatedResult` (or
14
+ `null`), which has no `.map` — copied verbatim, this throws once the query resolves.
15
+ Fixed to `data?.records.map(...)`.
16
+ - `useMetadata`'s example called `client.meta.getObject(...)`, a method that does not
17
+ exist on the client (only `getItem`/`getItems`/`getView` do). Fixed to the real
18
+ `client.meta.getItem('object', ...)`, matching `useObject`'s own implementation.
19
+
20
+ While in there: every other `@example` on this surface (18 more, across
21
+ `client-react`'s `data-hooks.tsx`/`metadata-hooks.tsx`/`realtime-hooks.tsx`/`context.tsx`
22
+ and `client`'s `index.ts`) is now genuinely self-contained and copy-paste-able — each
23
+ previously omitted the `import` for the hook or type it demonstrated, and three
24
+ `realtime-hooks.tsx` examples wrote a literal `useQuery(...)` (three dots) as a prose
25
+ placeholder, a syntax error once copied.
26
+
27
+ **`@objectstack/spec`: dev tooling only, nothing published changes.** The gate that now
28
+ type-checks the surface above (`check:skill-examples`, `packages/spec/scripts/`) lives in
29
+ this package but is not part of it — `scripts/` is outside `@objectstack/spec`'s publish
30
+ `files` allowlist (confirmed via `check:published-files`), so no consumer-visible surface
31
+ moves. Named here only because the fixed-version group requires every package with a
32
+ source diff to be covered by a changeset; the actual version bump is a byproduct of the
33
+ group moving together, not a claim that spec shipped something new.
34
+
35
+ No exported type, function signature, or runtime behaviour changed on any of the three — patch.
36
+ - Updated dependencies [809d417]
37
+ - Updated dependencies [387e231]
38
+ - Updated dependencies [f794e4e]
39
+ - Updated dependencies [cae2169]
40
+ - Updated dependencies [b812a54]
41
+ - Updated dependencies [2d4fa75]
42
+ - Updated dependencies [0e4e51b]
43
+ - Updated dependencies [e84bbf6]
44
+ - Updated dependencies [effae80]
45
+ - Updated dependencies [efb3513]
46
+ - Updated dependencies [d62f990]
47
+ - Updated dependencies [c45d8e6]
48
+ - Updated dependencies [87042b5]
49
+ - Updated dependencies [2e3e8c7]
50
+ - Updated dependencies [e621291]
51
+ - Updated dependencies [655b106]
52
+ - Updated dependencies [40a93b5]
53
+ - Updated dependencies [d5b330d]
54
+ - Updated dependencies [dda969c]
55
+ - Updated dependencies [1f45690]
56
+ - Updated dependencies [277948f]
57
+ - Updated dependencies [8bdd955]
58
+ - Updated dependencies [f3bbbef]
59
+ - Updated dependencies [4f24e9d]
60
+ - Updated dependencies [e27583e]
61
+ - Updated dependencies [4bd6faa]
62
+ - Updated dependencies [86cbe37]
63
+ - Updated dependencies [6a180e4]
64
+ - Updated dependencies [474242f]
65
+ - Updated dependencies [63cd487]
66
+ - Updated dependencies [bd4aa4e]
67
+ - Updated dependencies [803eaab]
68
+ - Updated dependencies [f8e8f03]
69
+ - Updated dependencies [983edf1]
70
+ - Updated dependencies [eae824e]
71
+ - Updated dependencies [f6fa22c]
72
+ - Updated dependencies [8a483b3]
73
+ - Updated dependencies [97bcd99]
74
+ - Updated dependencies [df59de0]
75
+ - Updated dependencies [96e25a8]
76
+ - Updated dependencies [f75a38a]
77
+ - Updated dependencies [7a25e7d]
78
+ - Updated dependencies [d3bee87]
79
+ - Updated dependencies [db16b94]
80
+ - Updated dependencies [b15d260]
81
+ - Updated dependencies [887b97d]
82
+ - Updated dependencies [d9aa041]
83
+ - Updated dependencies [7899f57]
84
+ - Updated dependencies [6274a1a]
85
+ - Updated dependencies [1fa05a6]
86
+ - Updated dependencies [22c42c9]
87
+ - Updated dependencies [c85a265]
88
+ - Updated dependencies [dcb10a5]
89
+ - Updated dependencies [773a999]
90
+ - Updated dependencies [35dffea]
91
+ - Updated dependencies [d8024f0]
92
+ - Updated dependencies [8120808]
93
+ - Updated dependencies [776a098]
94
+ - Updated dependencies [5060877]
95
+ - Updated dependencies [4f6325d]
96
+ - Updated dependencies [52954c0]
97
+ - Updated dependencies [2aa8456]
98
+ - Updated dependencies [93809a3]
99
+ - Updated dependencies [7c0d0c3]
100
+ - Updated dependencies [daae7aa]
101
+ - Updated dependencies [8dc22d6]
102
+ - Updated dependencies [279431e]
103
+ - Updated dependencies [948dd6b]
104
+ - Updated dependencies [3b4c56c]
105
+ - Updated dependencies [ae8edd2]
106
+ - Updated dependencies [e25403c]
107
+ - Updated dependencies [64baa68]
108
+ - Updated dependencies [9fa70d7]
109
+ - Updated dependencies [09db64a]
110
+ - Updated dependencies [92916e7]
111
+ - Updated dependencies [a84f3ea]
112
+ - Updated dependencies [f2eaae8]
113
+ - Updated dependencies [c09451b]
114
+ - Updated dependencies [ba64877]
115
+ - Updated dependencies [7345308]
116
+ - Updated dependencies [79b6a22]
117
+ - Updated dependencies [30d96ab]
118
+ - Updated dependencies [f658793]
119
+ - Updated dependencies [c95ad19]
120
+ - Updated dependencies [e58ea8b]
121
+ - Updated dependencies [4a17645]
122
+ - Updated dependencies [247933f]
123
+ - Updated dependencies [3795c5f]
124
+ - Updated dependencies [8ab926b]
125
+ - Updated dependencies [7317cf2]
126
+ - Updated dependencies [e25e839]
127
+ - Updated dependencies [5997207]
128
+ - Updated dependencies [8b13cc8]
129
+ - Updated dependencies [4a4a35d]
130
+ - Updated dependencies [86e765a]
131
+ - Updated dependencies [1d7e76a]
132
+ - Updated dependencies [53dc739]
133
+ - Updated dependencies [fd289be]
134
+ - Updated dependencies [03bf7b1]
135
+ - Updated dependencies [f90e820]
136
+ - Updated dependencies [18d816a]
137
+ - Updated dependencies [e8bd715]
138
+ - Updated dependencies [b91c351]
139
+ - Updated dependencies [a28a3c0]
140
+ - Updated dependencies [daeaaf9]
141
+ - Updated dependencies [c459da6]
142
+ - Updated dependencies [e914733]
143
+ - Updated dependencies [f887e52]
144
+ - Updated dependencies [881f8d8]
145
+ - Updated dependencies [3bfa1e6]
146
+ - Updated dependencies [0a8ebf3]
147
+ - Updated dependencies [901355c]
148
+ - Updated dependencies [34ce8e7]
149
+ - Updated dependencies [33681ea]
150
+ - Updated dependencies [4635f3e]
151
+ - Updated dependencies [fd289be]
152
+ - Updated dependencies [ee3595c]
153
+ - Updated dependencies [b2eab95]
154
+ - Updated dependencies [93940d4]
155
+ - Updated dependencies [3a04b01]
156
+ - Updated dependencies [45b9051]
157
+ - Updated dependencies [b9e9227]
158
+ - Updated dependencies [d395692]
159
+ - Updated dependencies [5894d30]
160
+ - Updated dependencies [a3765f6]
161
+ - Updated dependencies [2d5cee3]
162
+ - Updated dependencies [e22158f]
163
+ - Updated dependencies [7404925]
164
+ - Updated dependencies [0c2334f]
165
+ - Updated dependencies [778c59f]
166
+ - Updated dependencies [d2619fd]
167
+ - Updated dependencies [af56546]
168
+ - Updated dependencies [6acb11a]
169
+ - Updated dependencies [33c5fd3]
170
+ - Updated dependencies [20b0fdb]
171
+ - Updated dependencies [905019b]
172
+ - Updated dependencies [a286411]
173
+ - Updated dependencies [98c0d33]
174
+ - Updated dependencies [368a82e]
175
+ - Updated dependencies [a3d5724]
176
+ - Updated dependencies [93ea19b]
177
+ - Updated dependencies [9ee2dcf]
178
+ - Updated dependencies [8cb96ec]
179
+ - Updated dependencies [8f10a79]
180
+ - Updated dependencies [6269a55]
181
+ - Updated dependencies [a17da05]
182
+ - Updated dependencies [a8c00e2]
183
+ - Updated dependencies [0fb8760]
184
+ - Updated dependencies [e5ce2ed]
185
+ - Updated dependencies [be21955]
186
+ - Updated dependencies [bc56e18]
187
+ - Updated dependencies [be21955]
188
+ - Updated dependencies [a9ee989]
189
+ - Updated dependencies [4d0d944]
190
+ - Updated dependencies [15d58db]
191
+ - Updated dependencies [d63b014]
192
+ - Updated dependencies [9abe4e4]
193
+ - Updated dependencies [2cc7122]
194
+ - Updated dependencies [cf71d73]
195
+ - Updated dependencies [426ad58]
196
+ - Updated dependencies [50d6c92]
197
+ - Updated dependencies [9e0ba21]
198
+ - Updated dependencies [311433f]
199
+ - Updated dependencies [3e5ad08]
200
+ - Updated dependencies [9abe4e4]
201
+ - Updated dependencies [b7131f3]
202
+ - Updated dependencies [e5812fa]
203
+ - Updated dependencies [7085f90]
204
+ - Updated dependencies [dee4dd4]
205
+ - Updated dependencies [ce7e497]
206
+ - Updated dependencies [51ecb2f]
207
+ - Updated dependencies [9086761]
208
+ - Updated dependencies [42a117b]
209
+ - Updated dependencies [1401ae7]
210
+ - Updated dependencies [4297fe7]
211
+ - Updated dependencies [e398863]
212
+ - Updated dependencies [d16df74]
213
+ - Updated dependencies [f11fc61]
214
+ - Updated dependencies [e808890]
215
+ - Updated dependencies [8f79379]
216
+ - Updated dependencies [e6ca40e]
217
+ - Updated dependencies [0c77ea4]
218
+ - Updated dependencies [52954c0]
219
+ - Updated dependencies [89eb997]
220
+ - Updated dependencies [7131f12]
221
+ - Updated dependencies [aa5994e]
222
+ - Updated dependencies [be93457]
223
+ - Updated dependencies [a65db76]
224
+ - Updated dependencies [15eb2c9]
225
+ - Updated dependencies [5691b07]
226
+ - Updated dependencies [2a6122b]
227
+ - Updated dependencies [225e769]
228
+ - Updated dependencies [8af88dd]
229
+ - Updated dependencies [fb5fbb8]
230
+ - Updated dependencies [d7b3963]
231
+ - Updated dependencies [33184fd]
232
+ - Updated dependencies [7c41693]
233
+ - Updated dependencies [b72db01]
234
+ - Updated dependencies [dce5cd4]
235
+ - Updated dependencies [9688f58]
236
+ - Updated dependencies [556ebc1]
237
+ - Updated dependencies [177ebdc]
238
+ - Updated dependencies [8d237b4]
239
+ - Updated dependencies [2d2e6f0]
240
+ - Updated dependencies [2d8dd8d]
241
+ - Updated dependencies [22d573e]
242
+ - Updated dependencies [b5a2398]
243
+ - Updated dependencies [348860c]
244
+ - Updated dependencies [5383fa6]
245
+ - Updated dependencies [5b3ff63]
246
+ - Updated dependencies [1a6a19c]
247
+ - Updated dependencies [527e050]
248
+ - Updated dependencies [dd33bf9]
249
+ - Updated dependencies [4cb2a90]
250
+ - Updated dependencies [74a7804]
251
+ - Updated dependencies [3519f8d]
252
+ - Updated dependencies [53d3689]
253
+ - Updated dependencies [b3a63d3]
254
+ - Updated dependencies [7986d97]
255
+ - Updated dependencies [49f0dcf]
256
+ - Updated dependencies [033a34c]
257
+ - Updated dependencies [4d25d22]
258
+ - Updated dependencies [1ffee51]
259
+ - Updated dependencies [5ae4303]
260
+ - Updated dependencies [ece4dad]
261
+ - Updated dependencies [e9b377e]
262
+ - Updated dependencies [146f448]
263
+ - Updated dependencies [735f5c7]
264
+ - Updated dependencies [a7e18de]
265
+ - Updated dependencies [366f895]
266
+ - Updated dependencies [dc75ba8]
267
+ - Updated dependencies [cce0aa9]
268
+ - Updated dependencies [e764507]
269
+ - Updated dependencies [cff17af]
270
+ - Updated dependencies [39404f3]
271
+ - Updated dependencies [ca1965f]
272
+ - Updated dependencies [8619f95]
273
+ - Updated dependencies [b706af9]
274
+ - Updated dependencies [add4360]
275
+ - Updated dependencies [fc9ba76]
276
+ - Updated dependencies [0f94cc7]
277
+ - Updated dependencies [a11c1a5]
278
+ - Updated dependencies [71f9cd1]
279
+ - Updated dependencies [ee17d86]
280
+ - Updated dependencies [cdbd920]
281
+ - Updated dependencies [18c432e]
282
+ - Updated dependencies [3c418c4]
283
+ - Updated dependencies [fa8715a]
284
+ - Updated dependencies [a933ed7]
285
+ - Updated dependencies [b3ca463]
286
+ - Updated dependencies [a933ed7]
287
+ - Updated dependencies [0d4a6a8]
288
+ - Updated dependencies [518d5e5]
289
+ - Updated dependencies [6643ba1]
290
+ - Updated dependencies [eeba2ef]
291
+ - Updated dependencies [ec4c4d2]
292
+ - Updated dependencies [424f73c]
293
+ - Updated dependencies [cccbe51]
294
+ - Updated dependencies [a8d6b1d]
295
+ - Updated dependencies [e4a7695]
296
+ - Updated dependencies [87075b1]
297
+ - Updated dependencies [fc58a99]
298
+ - Updated dependencies [14cfc00]
299
+ - Updated dependencies [1c6f7b4]
300
+ - Updated dependencies [e854a53]
301
+ - Updated dependencies [dfebfc8]
302
+ - Updated dependencies [d028b37]
303
+ - Updated dependencies [f7b25c5]
304
+ - Updated dependencies [122ef38]
305
+ - Updated dependencies [4a37870]
306
+ - Updated dependencies [428f9b2]
307
+ - Updated dependencies [aa7ff56]
308
+ - Updated dependencies [c41b42e]
309
+ - Updated dependencies [c4db311]
310
+ - Updated dependencies [750fff5]
311
+ - Updated dependencies [c19035e]
312
+ - Updated dependencies [ececf7a]
313
+ - Updated dependencies [d173125]
314
+ - Updated dependencies [8eeca27]
315
+ - Updated dependencies [8425c17]
316
+ - Updated dependencies [a5ef1d8]
317
+ - Updated dependencies [772d5de]
318
+ - Updated dependencies [ce80ec2]
319
+ - Updated dependencies [b372318]
320
+ - Updated dependencies [97a2263]
321
+ - Updated dependencies [29d0676]
322
+ - Updated dependencies [0169d49]
323
+ - Updated dependencies [6bd3231]
324
+ - Updated dependencies [d2b5ba8]
325
+ - Updated dependencies [b799ac5]
326
+ - Updated dependencies [8f74307]
327
+ - Updated dependencies [d23dc08]
328
+ - Updated dependencies [644ad50]
329
+ - Updated dependencies [0da7cd2]
330
+ - Updated dependencies [28a5c3e]
331
+ - Updated dependencies [4bc18e5]
332
+ - @objectstack/spec@17.3.0
333
+ - @objectstack/core@17.3.0
334
+ - @objectstack/client@17.3.0
335
+
3
336
  ## 17.2.0
4
337
 
5
338
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -34,8 +34,17 @@ declare const ObjectStackLocaleContext: React.Context<string | undefined>;
34
34
  * Provider component that makes ObjectStackClient available to all child components
35
35
  *
36
36
  * @example
37
+ * <!-- os:check -->
37
38
  * ```tsx
39
+ * import { ObjectStackClient } from '@objectstack/client';
40
+ * import { ObjectStackProvider } from '@objectstack/client-react';
41
+ *
38
42
  * const client = new ObjectStackClient({ baseUrl: 'http://localhost:3000' });
43
+ * const language = 'en';
44
+ *
45
+ * function YourComponents() {
46
+ * return <div>Your app</div>;
47
+ * }
39
48
  *
40
49
  * function App() {
41
50
  * return (
@@ -59,7 +68,10 @@ declare function useObjectStackLocale(): string | undefined;
59
68
  * @throws Error if used outside of ObjectStackProvider
60
69
  *
61
70
  * @example
71
+ * <!-- os:check -->
62
72
  * ```tsx
73
+ * import { useClient } from '@objectstack/client-react';
74
+ *
63
75
  * function MyComponent() {
64
76
  * const client = useClient();
65
77
  * // Use client.data.find(), etc.
@@ -116,7 +128,10 @@ interface UseQueryResult<T = any> {
116
128
  * Hook for querying ObjectStack data with automatic caching and refetching
117
129
  *
118
130
  * @example
131
+ * <!-- os:check -->
119
132
  * ```tsx
133
+ * import { useQuery } from '@objectstack/client-react';
134
+ *
120
135
  * function TaskList() {
121
136
  * const { data, isLoading, error, refetch } = useQuery('todo_task', {
122
137
  * fields: ['id', 'subject', 'priority'],
@@ -170,7 +185,10 @@ interface UseMutationResult<TData = any, TVariables = any> {
170
185
  * Hook for creating, updating, or deleting ObjectStack data
171
186
  *
172
187
  * @example
188
+ * <!-- os:check -->
173
189
  * ```tsx
190
+ * import { useMutation } from '@objectstack/client-react';
191
+ *
174
192
  * function CreateTaskForm() {
175
193
  * const { mutate, isLoading, error } = useMutation('todo_task', 'create', {
176
194
  * onSuccess: (data) => {
@@ -178,11 +196,11 @@ interface UseMutationResult<TData = any, TVariables = any> {
178
196
  * }
179
197
  * });
180
198
  *
181
- * const handleSubmit = (formData) => {
199
+ * const handleSubmit = (formData: Record<string, unknown>) => {
182
200
  * mutate(formData);
183
201
  * };
184
202
  *
185
- * return <form onSubmit={handleSubmit}>...</form>;
203
+ * return <button onClick={() => handleSubmit({ subject: 'New task' })}>Create</button>;
186
204
  * }
187
205
  * ```
188
206
  */
@@ -221,7 +239,10 @@ interface UsePaginationResult<T = any> extends UseQueryResult<T> {
221
239
  * Hook for paginated data queries
222
240
  *
223
241
  * @example
242
+ * <!-- os:check -->
224
243
  * ```tsx
244
+ * import { usePagination } from '@objectstack/client-react';
245
+ *
225
246
  * function PaginatedTaskList() {
226
247
  * const {
227
248
  * data,
@@ -283,7 +304,10 @@ interface UseInfiniteQueryResult<T = any> {
283
304
  * Hook for infinite scrolling / load more functionality
284
305
  *
285
306
  * @example
307
+ * <!-- os:check -->
286
308
  * ```tsx
309
+ * import { useInfiniteQuery } from '@objectstack/client-react';
310
+ *
287
311
  * function InfiniteTaskList() {
288
312
  * const {
289
313
  * flatData,
@@ -362,7 +386,10 @@ interface UseMetadataResult<T = any> {
362
386
  * now. See {@link useFields} for the pre-flattened field list.
363
387
  *
364
388
  * @example
389
+ * <!-- os:check -->
365
390
  * ```tsx
391
+ * import { useObject } from '@objectstack/client-react';
392
+ *
366
393
  * function ObjectSchemaViewer({ objectName }: { objectName: string }) {
367
394
  * const { data, isLoading, error } = useObject(objectName);
368
395
  *
@@ -384,7 +411,10 @@ declare function useObject(objectName: string, options?: UseMetadataOptions): Us
384
411
  * Hook for fetching view configuration
385
412
  *
386
413
  * @example
414
+ * <!-- os:check -->
387
415
  * ```tsx
416
+ * import { useView } from '@objectstack/client-react';
417
+ *
388
418
  * function ViewConfiguration({ objectName }: { objectName: string }) {
389
419
  * const { data: view, isLoading } = useView(objectName, 'list');
390
420
  *
@@ -404,7 +434,10 @@ declare function useView(objectName: string, viewType?: 'list' | 'form', options
404
434
  * Hook for extracting fields from object schema
405
435
  *
406
436
  * @example
437
+ * <!-- os:check -->
407
438
  * ```tsx
439
+ * import { useFields } from '@objectstack/client-react';
440
+ *
408
441
  * function FieldList({ objectName }: { objectName: string }) {
409
442
  * const { data: fields, isLoading } = useFields(objectName);
410
443
  *
@@ -425,11 +458,14 @@ declare function useFields(objectName: string, options?: UseMetadataOptions): Us
425
458
  * Generic metadata hook for custom metadata queries
426
459
  *
427
460
  * @example
461
+ * <!-- os:check -->
428
462
  * ```tsx
463
+ * import { useMetadata } from '@objectstack/client-react';
464
+ *
429
465
  * function CustomMetadata() {
430
466
  * const { data, isLoading } = useMetadata(async (client) => {
431
467
  * // Custom metadata fetching logic
432
- * const object = await client.meta.getObject('custom_object');
468
+ * const object = await client.meta.getItem('object', 'custom_object');
433
469
  * const view = await client.meta.getView('custom_object', 'list');
434
470
  * return { object, view };
435
471
  * });
@@ -453,7 +489,11 @@ declare function useMetadata<T = any>(fetcher: (client: ReturnType<typeof useCli
453
489
  * @returns Latest metadata event or null
454
490
  *
455
491
  * @example
492
+ * <!-- os:check -->
456
493
  * ```tsx
494
+ * import { useEffect } from 'react';
495
+ * import { useMetadataSubscription } from '@objectstack/client-react';
496
+ *
457
497
  * function ObjectList() {
458
498
  * const event = useMetadataSubscription('object');
459
499
  *
@@ -479,7 +519,11 @@ declare function useMetadataSubscription(type: MetadataEventSubject, options?: {
479
519
  * @returns Latest data event or null
480
520
  *
481
521
  * @example
522
+ * <!-- os:check -->
482
523
  * ```tsx
524
+ * import { useEffect } from 'react';
525
+ * import { useDataSubscription } from '@objectstack/client-react';
526
+ *
483
527
  * function TaskDetail({ taskId }: { taskId: string }) {
484
528
  * const event = useDataSubscription('project_task', { recordId: taskId });
485
529
  *
@@ -509,9 +553,12 @@ declare function useDataSubscription(object: string, options?: {
509
553
  * @param options - Optional filters
510
554
  *
511
555
  * @example
556
+ * <!-- os:check -->
512
557
  * ```tsx
558
+ * import { useQuery, useMetadataSubscriptionCallback } from '@objectstack/client-react';
559
+ *
513
560
  * function ObjectList() {
514
- * const { refetch } = useQuery(...);
561
+ * const { refetch } = useQuery('todo_task', {});
515
562
  *
516
563
  * useMetadataSubscriptionCallback('object', () => {
517
564
  * refetch(); // Refetch list when objects change
@@ -532,9 +579,12 @@ declare function useMetadataSubscriptionCallback(type: MetadataEventSubject, cal
532
579
  * @param options - Optional filters
533
580
  *
534
581
  * @example
582
+ * <!-- os:check -->
535
583
  * ```tsx
584
+ * import { useQuery, useDataSubscriptionCallback } from '@objectstack/client-react';
585
+ *
536
586
  * function TaskList() {
537
- * const { refetch } = useQuery(...);
587
+ * const { refetch } = useQuery('project_task', {});
538
588
  *
539
589
  * useDataSubscriptionCallback('project_task', () => {
540
590
  * refetch(); // Refetch list when tasks change
@@ -567,7 +617,11 @@ declare function useDataSubscriptionCallback(object: string, callback: (event: D
567
617
  * @returns Latest bulk data event or null
568
618
  *
569
619
  * @example
620
+ * <!-- os:check -->
570
621
  * ```tsx
622
+ * import { useEffect } from 'react';
623
+ * import { useBulkDataSubscription } from '@objectstack/client-react';
624
+ *
571
625
  * function TaskList() {
572
626
  * const bulk = useBulkDataSubscription('project_task');
573
627
  *
@@ -592,9 +646,12 @@ declare function useBulkDataSubscription(object: string): BulkDataEvent | null;
592
646
  * @param callback - Callback to invoke on events
593
647
  *
594
648
  * @example
649
+ * <!-- os:check -->
595
650
  * ```tsx
651
+ * import { useQuery, useBulkDataSubscriptionCallback } from '@objectstack/client-react';
652
+ *
596
653
  * function TaskList() {
597
- * const { refetch } = useQuery(...);
654
+ * const { refetch } = useQuery('project_task', {});
598
655
  *
599
656
  * useBulkDataSubscriptionCallback('project_task', () => {
600
657
  * refetch(); // a predicate write touched an unknown set of rows
@@ -611,7 +668,10 @@ declare function useBulkDataSubscriptionCallback(object: string, callback: (even
611
668
  * @returns Whether realtime is connected
612
669
  *
613
670
  * @example
671
+ * <!-- os:check -->
614
672
  * ```tsx
673
+ * import { useRealtimeConnection } from '@objectstack/client-react';
674
+ *
615
675
  * function ConnectionIndicator() {
616
676
  * const connected = useRealtimeConnection();
617
677
  *
@@ -646,13 +706,16 @@ declare function useRealtimeConnection(): boolean;
646
706
  * @param options - Optional filters
647
707
  *
648
708
  * @example
709
+ * <!-- os:check -->
649
710
  * ```tsx
711
+ * import { useQuery, useAutoRefresh } from '@objectstack/client-react';
712
+ *
650
713
  * function TaskList() {
651
714
  * const { data, refetch } = useQuery('project_task', {});
652
715
  *
653
716
  * useAutoRefresh('project_task', refetch);
654
717
  *
655
- * return <div>{data.map(...)}</div>;
718
+ * return <div>{data?.records.map(task => <div key={task.id}>{task.subject}</div>)}</div>;
656
719
  * }
657
720
  * ```
658
721
  */