@hvakr/firestate 0.1.3 → 0.1.5

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/index.d.mts CHANGED
@@ -27,27 +27,43 @@ interface UpdateOptions {
27
27
  undoGroupId?: string;
28
28
  }
29
29
  /**
30
- * State of a document subscription
30
+ * The full observable state of a document subscription — what a hook `selector`
31
+ * receives. Carries every status flag (including `isSynced`, which the default
32
+ * data handle deliberately omits) so a selector can react to exactly the slice
33
+ * it reads.
31
34
  */
32
35
  interface DocumentState<T> {
33
36
  /** Current merged state (local changes applied to sync state) */
34
37
  data: T | undefined;
35
- /** Whether initial data has loaded */
38
+ /** Whether the initial snapshot has not arrived yet */
36
39
  isLoading: boolean;
37
- /** Whether there are pending local changes */
40
+ /**
41
+ * Whether the initial snapshot has arrived and data is ready to render — the
42
+ * completion of {@link DocumentState.isLoading} (`!isLoading` for a live
43
+ * subscription; `false` while the hook is disabled).
44
+ */
45
+ isLoaded: boolean;
46
+ /** Whether all local changes have synced to Firestore (no pending writes) */
38
47
  isSynced: boolean;
39
48
  /** Error from listener, if any */
40
49
  error: Error | undefined;
41
50
  }
42
51
  /**
43
- * State of a collection subscription
52
+ * The full observable state of a collection subscription — what a hook
53
+ * `selector` receives. See {@link DocumentState}.
44
54
  */
45
55
  interface CollectionState<T> {
46
56
  /** Current merged state keyed by document ID */
47
57
  data: Record<string, T>;
48
- /** Whether initial data has loaded */
58
+ /** Whether the initial snapshot has not arrived yet */
49
59
  isLoading: boolean;
50
- /** Whether there are pending local changes */
60
+ /**
61
+ * Whether the collection is active and its initial snapshot has arrived —
62
+ * `isActive && !isLoading`. `false` for a lazy collection before `load()`,
63
+ * and while the hook is disabled.
64
+ */
65
+ isLoaded: boolean;
66
+ /** Whether all local changes have synced to Firestore (no pending writes) */
51
67
  isSynced: boolean;
52
68
  /** Whether the collection has been activated (for lazy loading) */
53
69
  isActive: boolean;
@@ -55,7 +71,38 @@ interface CollectionState<T> {
55
71
  error: Error | undefined;
56
72
  }
57
73
  /**
58
- * Document handle returned by useDocument hook
74
+ * Sync status of a single resource, returned by the per-entry
75
+ * `use{Name}SyncStatus` hook. Opt-in: only components that render save/dirty
76
+ * state subscribe to it, so the common data path does not re-render when a write
77
+ * settles. Shares the resource's one `onSnapshot` listener.
78
+ */
79
+ interface SyncStatus {
80
+ /** Whether all local changes have synced to Firestore (no pending writes) */
81
+ isSynced: boolean;
82
+ /** Whether there are pending local changes still being saved (`!isSynced`) */
83
+ isSaving: boolean;
84
+ }
85
+ /**
86
+ * Loading status of a single resource, returned by the per-entry
87
+ * `use{Name}LoadingStatus` hook. A spinner-only channel: it re-renders on load
88
+ * transitions but never on data changes. Shares the resource's listener.
89
+ */
90
+ interface LoadingStatus {
91
+ /** Whether the initial snapshot has not arrived yet */
92
+ isLoading: boolean;
93
+ /** Whether the initial snapshot has arrived (the completion of `isLoading`) */
94
+ isLoaded: boolean;
95
+ }
96
+ /**
97
+ * Document handle returned by the `useDocument` hook.
98
+ *
99
+ * **Sync-agnostic by default.** The handle carries `data`, `isLoaded`, `error`,
100
+ * the writers, and `ref` — but NOT `isSynced`. A document hook therefore does
101
+ * not re-render when a write settles (the `isSynced` flip on every autosave),
102
+ * so "just render the record" is the cheap, default path. Components that
103
+ * actually render save/dirty state opt into the per-entry `use{Name}SyncStatus`
104
+ * hook ({@link SyncStatus}), which shares the same listener. The raw
105
+ * `isLoading`/`isSynced` flags remain on {@link DocumentState} for selectors.
59
106
  */
60
107
  interface DocumentHandle<T extends FirestoreObject> {
61
108
  /** Current document data */
@@ -66,10 +113,13 @@ interface DocumentHandle<T extends FirestoreObject> {
66
113
  set: (data: T, options?: UpdateOptions) => void;
67
114
  /** Delete the document */
68
115
  delete: (options?: UpdateOptions) => void;
69
- /** Whether initial data is loading */
70
- isLoading: boolean;
71
- /** Whether all changes have synced to Firestore */
72
- isSynced: boolean;
116
+ /**
117
+ * Whether the initial snapshot has arrived and data is ready to render — the
118
+ * completion of `isLoading`. `false` while loading or when the hook is
119
+ * disabled. (Use `use{Name}LoadingStatus` for an `isLoading`/`isLoaded`
120
+ * channel that does not re-render on data changes.)
121
+ */
122
+ isLoaded: boolean;
73
123
  /** Force sync pending changes immediately */
74
124
  sync: () => Promise<void>;
75
125
  /** Error from listener, if any */
@@ -81,7 +131,13 @@ interface DocumentHandle<T extends FirestoreObject> {
81
131
  ref: DocumentReference<T> | undefined;
82
132
  }
83
133
  /**
84
- * Collection handle returned by useCollection hook
134
+ * Collection handle returned by the `useCollection` hook.
135
+ *
136
+ * Sync-agnostic by default, exactly like {@link DocumentHandle}: it carries
137
+ * `data`, `isLoaded`, `isActive`, `error`, the writers, `load`, and `ref` — but
138
+ * NOT `isSynced`. Opt into `use{Name}SyncStatus` for save state. `isActive`
139
+ * stays (lazy collections gate a "Load" button on it); `isLoaded` is
140
+ * `isActive && !isLoading`.
85
141
  */
86
142
  interface CollectionHandle<T extends FirestoreObject> {
87
143
  /** Current collection data keyed by document ID */
@@ -97,15 +153,17 @@ interface CollectionHandle<T extends FirestoreObject> {
97
153
  * before using the id to navigate or persist references.
98
154
  */
99
155
  add: {
100
- (id: string, data: Omit<T, "id">, options?: UpdateOptions): string | undefined;
101
- (data: Omit<T, "id">, options?: UpdateOptions): string | undefined;
156
+ (id: string, data: Omit<T, 'id'>, options?: UpdateOptions): string | undefined;
157
+ (data: Omit<T, 'id'>, options?: UpdateOptions): string | undefined;
102
158
  };
103
159
  /** Remove a document from the collection */
104
160
  remove: (id: string, options?: UpdateOptions) => void;
105
- /** Whether initial data is loading */
106
- isLoading: boolean;
107
- /** Whether all changes have synced to Firestore */
108
- isSynced: boolean;
161
+ /**
162
+ * Whether the collection is active and its initial snapshot has arrived
163
+ * (ready to render) `isActive && !isLoading`. `false` for a lazy
164
+ * collection before `load()`, while loading, or when the hook is disabled.
165
+ */
166
+ isLoaded: boolean;
109
167
  /** Whether subscription is active (for lazy collections) */
110
168
  isActive: boolean;
111
169
  /** Activate a lazy subscription */
@@ -121,8 +179,8 @@ interface CollectionHandle<T extends FirestoreObject> {
121
179
  ref: CollectionReference<T> | undefined;
122
180
  }
123
181
  /** Reactive status fields a selector drops unless it folds them into its slice. */
124
- type DocumentStatusKeys = "isLoading" | "isSynced" | "error";
125
- type CollectionStatusKeys = DocumentStatusKeys | "isActive";
182
+ type DocumentStatusKeys = 'isLoaded' | 'error';
183
+ type CollectionStatusKeys = DocumentStatusKeys | 'isActive';
126
184
  /**
127
185
  * A {@link DocumentHandle} reduced to a hook-level `selector`'s output. The
128
186
  * selector receives the full observable state ({@link DocumentState}) and
@@ -131,8 +189,8 @@ type CollectionStatusKeys = DocumentStatusKeys | "isActive";
131
189
  *
132
190
  * A selected handle deliberately exposes **only** `data` (the slice) plus the
133
191
  * writer surface (`update`/`set`/`delete`/`sync`) and `ref` — never the status
134
- * fields (`isLoading`/`isSynced`/`error`). Status is not a freebie here: if a
135
- * component needs it, it must select it (`s => ({ slice: s.data?.x, loading:
192
+ * fields (`isLoaded`/`error`). Status is not a freebie here: if a component
193
+ * needs it, it must select it (`s => ({ slice: s.data?.x, loading:
136
194
  * s.isLoading })`), so what you re-render on is exactly what you select. The
137
195
  * writers stay typed against the full document `TData`, because a selector
138
196
  * changes what you *read*, never what you *write*.
@@ -143,7 +201,7 @@ type CollectionStatusKeys = DocumentStatusKeys | "isActive";
143
201
  * to `set`, or you will overwrite every other field. Prefer `update` from a
144
202
  * narrowed handle; reach for `set` only when you hold the full document.
145
203
  */
146
- interface SelectedDocumentHandle<TData extends FirestoreObject, TSelected> extends Omit<DocumentHandle<TData>, "data" | DocumentStatusKeys> {
204
+ interface SelectedDocumentHandle<TData extends FirestoreObject, TSelected> extends Omit<DocumentHandle<TData>, 'data' | DocumentStatusKeys> {
147
205
  /** The slice produced by the hook's `selector`. */
148
206
  data: TSelected;
149
207
  }
@@ -152,11 +210,11 @@ interface SelectedDocumentHandle<TData extends FirestoreObject, TSelected> exten
152
210
  * with {@link SelectedDocumentHandle}, the selector receives the full
153
211
  * observable state ({@link CollectionState}) and the handle exposes only the
154
212
  * slice plus the writer surface (`update`/`add`/`remove`/`load`/`sync`) and
155
- * `ref` — status fields (`isLoading`/`isSynced`/`isActive`/`error`) are dropped
156
- * unless folded into the slice. Writers stay typed against the full collection
157
- * of `TData`.
213
+ * `ref` — status fields (`isLoaded`/`isActive`/`error`) are dropped unless
214
+ * folded into the slice. Writers stay typed against the full collection of
215
+ * `TData`.
158
216
  */
159
- interface SelectedCollectionHandle<TData extends FirestoreObject, TSelected> extends Omit<CollectionHandle<TData>, "data" | CollectionStatusKeys> {
217
+ interface SelectedCollectionHandle<TData extends FirestoreObject, TSelected> extends Omit<CollectionHandle<TData>, 'data' | CollectionStatusKeys> {
160
218
  /** The slice produced by the hook's `selector`. */
161
219
  data: TSelected;
162
220
  }
@@ -289,6 +347,10 @@ interface FirestateConfig {
289
347
  * where a change occurred before reverting it.
290
348
  */
291
349
  onNavigate?: (path: string) => void;
350
+ /** Called after an undo action has been successfully applied. */
351
+ onUndo?: (action: UndoAction) => void;
352
+ /** Called after a redo action has been successfully applied. */
353
+ onRedo?: (action: UndoAction) => void;
292
354
  /** Custom error handler */
293
355
  onError?: (error: Error, context: ErrorContext) => void;
294
356
  }
@@ -296,9 +358,9 @@ interface FirestateConfig {
296
358
  * Context for error handling
297
359
  */
298
360
  interface ErrorContext {
299
- type: "document" | "collection";
361
+ type: 'document' | 'collection' | 'undo';
300
362
  path: string;
301
- operation: "read" | "write";
363
+ operation: 'read' | 'write' | 'undo' | 'redo';
302
364
  }
303
365
  /**
304
366
  * Subscriber callback type
@@ -404,6 +466,12 @@ interface UndoManagerConfig {
404
466
  maxLength?: number;
405
467
  /** Callback when navigation is requested (for path-aware undo) */
406
468
  onNavigate?: (path: string) => void;
469
+ /** Callback after an undo action has been successfully applied */
470
+ onUndo?: (action: UndoAction) => void;
471
+ /** Callback after a redo action has been successfully applied */
472
+ onRedo?: (action: UndoAction) => void;
473
+ /** Callback when an undo or redo action fails */
474
+ onError?: (error: Error, action: UndoAction, operation: 'undo' | 'redo') => void;
407
475
  }
408
476
  /**
409
477
  * Create an undo manager instance.
@@ -459,6 +527,10 @@ interface FirestateStore {
459
527
  * callback that changes reference on every render.
460
528
  */
461
529
  setOnNavigate: (handler?: (path: string) => void) => void;
530
+ /** Replace the successful-undo handler without recreating the store. */
531
+ setOnUndo: (handler?: (action: UndoAction) => void) => void;
532
+ /** Replace the successful-redo handler without recreating the store. */
533
+ setOnRedo: (handler?: (action: UndoAction) => void) => void;
462
534
  /** Subscribe to sync state changes */
463
535
  subscribeToSyncState: (fn: Subscriber<boolean>) => Unsubscribe;
464
536
  /** Report a document/collection sync state change */
@@ -506,8 +578,9 @@ interface DocumentSelectorOptions<TData extends FirestoreObject, TSelected> {
506
578
  /**
507
579
  * Project the document's observable state down to the slice this component
508
580
  * reacts to. The selector receives the full {@link DocumentState} —
509
- * `{ data, isLoading, isSynced, error }`, where `data` is `undefined` while
510
- * the document is loading or the hook is disabled — and the component
581
+ * `{ data, isLoading, isLoaded, isSynced, error }`, where `data` is
582
+ * `undefined` while the document is loading or the hook is disabled — and
583
+ * the component
511
584
  * re-renders *only* when the returned slice changes (per `isEqual`). Status
512
585
  * is not a freebie: read `s.isLoading`/`s.isSynced`/`s.error` here if you
513
586
  * want to react to them (e.g. `s => ({ title: s.data?.title, saving:
@@ -533,8 +606,9 @@ interface CollectionSelectorOptions<TData extends FirestoreObject, TSelected> {
533
606
  /**
534
607
  * Project the collection's observable state down to the slice this component
535
608
  * reacts to. The selector receives the full {@link CollectionState} —
536
- * `{ data, isLoading, isSynced, isActive, error }`, where `data` is the keyed
537
- * record (e.g. `s => s.data[id]` or `s => Object.keys(s.data)`) — and the
609
+ * `{ data, isLoading, isLoaded, isSynced, isActive, error }`, where `data` is
610
+ * the keyed record (e.g. `s => s.data[id]` or `s => Object.keys(s.data)`) —
611
+ * and the
538
612
  * component re-renders *only* when the returned slice changes. As with
539
613
  * {@link DocumentSelectorOptions.selector}, status is reactive only if you
540
614
  * select it, and the returned handle exposes just the slice plus
@@ -583,9 +657,8 @@ interface UseDocumentOptions<TData extends FirestoreObject> {
583
657
  undoable?: boolean;
584
658
  /**
585
659
  * If false, no subscription is created and a no-op handle is returned
586
- * (`{ data: undefined, isLoading: false, isSynced: true, ref: undefined }`).
587
- * Use this to gate subscriptions on route params that aren't ready yet.
588
- * Default: true.
660
+ * (`{ data: undefined, isLoaded: false, ref: undefined }`). Use this to gate
661
+ * subscriptions on route params that aren't ready yet. Default: true.
589
662
  */
590
663
  enabled?: boolean;
591
664
  }
@@ -607,10 +680,15 @@ interface UseDocumentOptions<TData extends FirestoreObject> {
607
680
  * route params aren't ready yet).
608
681
  *
609
682
  * **SSR.** On the server there is no Firestore listener, so this hook returns
610
- * the initial handle (`{ data: undefined, isLoading: true }`). Mutations like
683
+ * the initial handle (`{ data: undefined, isLoaded: false }`). Mutations like
611
684
  * `update`/`set` will mutate orphaned local state with no effect — avoid
612
685
  * calling them server-side.
613
686
  *
687
+ * The default handle is **sync-agnostic** — it carries `data`/`isLoaded`/`error`
688
+ * but not `isSynced`, so it does not re-render when a write settles. Render save
689
+ * state via the per-entry `use{Name}SyncStatus` hook, or fold `isSynced` into a
690
+ * `selector`.
691
+ *
614
692
  * @example
615
693
  * ```tsx
616
694
  * const projectDoc = defineDocument<Project>({
@@ -619,12 +697,12 @@ interface UseDocumentOptions<TData extends FirestoreObject> {
619
697
  * })
620
698
  *
621
699
  * function ProjectEditor({ projectId }: { projectId: string }) {
622
- * const { data, update, isLoading, isSynced } = useDocument({
700
+ * const { data, update, isLoaded } = useDocument({
623
701
  * definition: projectDoc,
624
702
  * params: { projectId },
625
703
  * })
626
704
  *
627
- * if (isLoading) return <Spinner />
705
+ * if (!isLoaded) return <Spinner />
628
706
  *
629
707
  * return (
630
708
  * <input
@@ -669,7 +747,7 @@ interface UseCollectionOptions<TData extends FirestoreObject> {
669
747
  undoable?: boolean;
670
748
  /**
671
749
  * If false, no subscription is created and a no-op handle is returned
672
- * (`{ data: {}, isLoading: false, isActive: false }`). Use this to gate on
750
+ * (`{ data: {}, isLoaded: false, isActive: false }`). Use this to gate on
673
751
  * route params that aren't ready yet. Default: true.
674
752
  */
675
753
  enabled?: boolean;
@@ -708,8 +786,13 @@ interface UseCollectionOptions<TData extends FirestoreObject> {
708
786
  * route params aren't ready yet).
709
787
  *
710
788
  * **SSR.** On the server there is no Firestore listener, so this hook returns
711
- * the initial handle (`{ data: {}, isLoading: true }` for non-lazy, or
712
- * `isActive: false` for lazy). Avoid calling mutations server-side.
789
+ * the initial handle (`{ data: {}, isLoaded: false }`, `isActive: false` for
790
+ * lazy). Avoid calling mutations server-side.
791
+ *
792
+ * Like {@link useDocument}, the default handle is **sync-agnostic** — `data`,
793
+ * `isLoaded`, `isActive`, `error`, but not `isSynced`. `isActive` stays so a
794
+ * lazy collection can gate a "Load" button; `isLoaded` is `isActive &&
795
+ * !isLoading`. Render save state via `use{Name}SyncStatus`.
713
796
  *
714
797
  * @example
715
798
  * ```tsx
@@ -719,7 +802,7 @@ interface UseCollectionOptions<TData extends FirestoreObject> {
719
802
  * })
720
803
  *
721
804
  * function SpacesList({ projectId }: { projectId: string }) {
722
- * const { data, update, load, isActive, isLoading } = useCollection({
805
+ * const { data, update, load, isActive, isLoaded } = useCollection({
723
806
  * definition: spacesCollection,
724
807
  * params: { projectId },
725
808
  * })
@@ -728,7 +811,7 @@ interface UseCollectionOptions<TData extends FirestoreObject> {
728
811
  * useEffect(() => { load() }, [load])
729
812
  *
730
813
  * if (!isActive) return <Button onClick={load}>Load Spaces</Button>
731
- * if (isLoading) return <Spinner />
814
+ * if (!isLoaded) return <Spinner />
732
815
  *
733
816
  * return (
734
817
  * <ul>
@@ -758,6 +841,78 @@ declare function useCollection<TData extends FirestoreObject>(options: UseCollec
758
841
  * ```
759
842
  */
760
843
  declare function useCollection<TData extends FirestoreObject, TSelected>(options: UseCollectionOptions<TData> & CollectionSelectorOptions<TData, TSelected>): SelectedCollectionHandle<TData, TSelected>;
844
+ /** Options for the document status hooks (a subset of {@link UseDocumentOptions}). */
845
+ interface UseDocumentStatusOptions<TData extends FirestoreObject> {
846
+ /** Document definition from defineDocument(). */
847
+ definition: DocumentDefinition<TData>;
848
+ /** Route/path parameters for dynamic paths. */
849
+ params?: Record<string, string>;
850
+ /**
851
+ * If false, no subscription is created and the idle status is returned
852
+ * (`{ isSynced: true, isSaving: false }` / `{ isLoading: false, isLoaded:
853
+ * false }`). Default: true.
854
+ */
855
+ enabled?: boolean;
856
+ }
857
+ /** Options for the collection status hooks. Adds `queryConstraints`. */
858
+ interface UseCollectionStatusOptions<TData extends FirestoreObject> {
859
+ /** Collection definition from defineCollection(). */
860
+ definition: CollectionDefinition<TData>;
861
+ /** Route/path parameters for dynamic paths. */
862
+ params?: Record<string, string>;
863
+ /**
864
+ * Query constraints. Must produce the same query the data hook uses, or the
865
+ * status hook resolves a *different* shared entry (a second listener) —
866
+ * sharing is keyed by semantic query identity.
867
+ */
868
+ queryConstraints?: QueryConstraint[];
869
+ /** See {@link UseDocumentStatusOptions.enabled}. */
870
+ enabled?: boolean;
871
+ }
872
+ /**
873
+ * Subscribe to a document's **sync status only** — `{ isSynced, isSaving }`.
874
+ *
875
+ * The opt-in counterpart to the sync-agnostic default handle (see
876
+ * {@link DocumentHandle}): it re-renders when sync state flips but never on data
877
+ * changes, and shares the resource's one `onSnapshot` listener with
878
+ * `useDocument` and any slice hooks, so opting in adds no listener. While
879
+ * disabled it reports `{ isSynced: true, isSaving: false }`.
880
+ */
881
+ declare function useDocumentSyncStatus<TData extends FirestoreObject>(options: UseDocumentStatusOptions<TData>): SyncStatus;
882
+ /**
883
+ * Subscribe to a document's **loading status only** — `{ isLoading, isLoaded }`.
884
+ *
885
+ * A spinner channel that shares the resource's listener and does NOT re-render
886
+ * on data changes — for a progress indicator rendered apart from the data. The
887
+ * data handle keeps `isLoaded` for the common render path; this is an extra
888
+ * channel, not a replacement.
889
+ */
890
+ declare function useDocumentLoadingStatus<TData extends FirestoreObject>(options: UseDocumentStatusOptions<TData>): LoadingStatus;
891
+ /**
892
+ * Collection counterpart of {@link useDocumentSyncStatus} — `{ isSynced,
893
+ * isSaving }` over a collection query, sharing its one listener.
894
+ *
895
+ * **Lazy caveat.** On a `lazy` collection this hook never calls `load()` itself:
896
+ * activating a lazy listener is the data hook's job, and a passive status reader
897
+ * must not silently start the listener (and bill the reads) the laziness exists
898
+ * to defer. As the *lone* subscriber it therefore attaches no listener and stays
899
+ * at the idle `{ isSynced: true, isSaving: false }`. Mount it alongside a
900
+ * {@link useCollection} on the same query whose `load()` has run — the status
901
+ * hook rides that one shared listener and reports real sync state. Non-lazy
902
+ * collections activate on mount, so this hook works standalone there.
903
+ */
904
+ declare function useCollectionSyncStatus<TData extends FirestoreObject>(options: UseCollectionStatusOptions<TData>): SyncStatus;
905
+ /**
906
+ * Collection counterpart of {@link useDocumentLoadingStatus} — `{ isLoading,
907
+ * isLoaded }` over a collection query, sharing its one listener.
908
+ *
909
+ * Same lazy caveat as {@link useCollectionSyncStatus}: on a `lazy` collection it
910
+ * never calls `load()`, so as the lone subscriber it attaches no listener and
911
+ * stays at the idle `{ isLoading: false, isLoaded: false }` until a co-mounted
912
+ * {@link useCollection} (or any active hook on the same query) activates the
913
+ * shared listener via `load()`. Non-lazy collections activate on mount.
914
+ */
915
+ declare function useCollectionLoadingStatus<TData extends FirestoreObject>(options: UseCollectionStatusOptions<TData>): LoadingStatus;
761
916
  /**
762
917
  * Keyboard shortcut hook for undo/redo
763
918
  *
@@ -1036,7 +1191,21 @@ type SelectedParams<P extends string, PExtra> = IsAny<PExtra> extends true ? Par
1036
1191
  type SelectedDocHookFor<T extends FirestoreObject, P extends string, PExtra, TSelected> = keyof SelectedParams<P, PExtra> extends never ? (params?: Record<string, string>, options?: DocHookOptions<T>) => SelectedDocumentHandle<T, TSelected> : (params: SelectedParams<P, PExtra>, options?: DocHookOptions<T>) => SelectedDocumentHandle<T, TSelected>;
1037
1192
  type SelectedColHookFor<T extends FirestoreObject, P extends string, PExtra, TSelected> = keyof SelectedParams<P, PExtra> extends never ? (params?: Record<string, string>, options?: ColHookOptions<T>) => SelectedCollectionHandle<T, TSelected> : (params: SelectedParams<P, PExtra>, options?: ColHookOptions<T>) => SelectedCollectionHandle<T, TSelected>;
1038
1193
  type HookFor<E> = E extends SelectedDocEntry<infer T, infer P, infer PExtra, infer TSelected> ? SelectedDocHookFor<T, P, PExtra, TSelected> : E extends SelectedColEntry<infer T, infer P, infer PExtra, infer TSelected> ? SelectedColHookFor<T, P, PExtra, TSelected> : E extends DocEntry<infer T, infer P> ? keyof ParamsOf<P> extends never ? DocHookOptionalParams<T> : DocHookRequiredParams<T, P> : E extends ColEntry<infer T, infer P> ? keyof ParamsOf<P> extends never ? ColHookOptionalParams<T> : ColHookRequiredParams<T, P> : never;
1039
- type FirestateApi<R extends FirestateRegistry> = { [K in keyof R & string as HookName<K>]: HookFor<R[K]> };
1194
+ type SyncStatusHookName<K extends string> = `${HookName<K>}SyncStatus`;
1195
+ type LoadingStatusHookName<K extends string> = `${HookName<K>}LoadingStatus`;
1196
+ type BaseEntry = DocEntry<any, any> | ColEntry<any, any>;
1197
+ type DocStatusHookOptions = {
1198
+ enabled?: boolean;
1199
+ };
1200
+ type ColStatusHookOptions = {
1201
+ enabled?: boolean;
1202
+ queryConstraints?: QueryConstraint[];
1203
+ };
1204
+ type DocStatusHookFor<P extends string, Ret> = keyof ParamsOf<P> extends never ? (params?: Record<string, string>, options?: DocStatusHookOptions) => Ret : (params: ParamsOf<P>, options?: DocStatusHookOptions) => Ret;
1205
+ type ColStatusHookFor<P extends string, Ret> = keyof ParamsOf<P> extends never ? (params?: Record<string, string>, options?: ColStatusHookOptions) => Ret : (params: ParamsOf<P>, options?: ColStatusHookOptions) => Ret;
1206
+ type SyncStatusHookFor<E> = E extends DocEntry<any, infer P> ? DocStatusHookFor<P, SyncStatus> : E extends ColEntry<any, infer P> ? ColStatusHookFor<P, SyncStatus> : never;
1207
+ type LoadingStatusHookFor<E> = E extends DocEntry<any, infer P> ? DocStatusHookFor<P, LoadingStatus> : E extends ColEntry<any, infer P> ? ColStatusHookFor<P, LoadingStatus> : never;
1208
+ type FirestateApi<R extends FirestateRegistry> = { [K in keyof R & string as HookName<K>]: HookFor<R[K]> } & { [K in keyof R & string as R[K] extends BaseEntry ? SyncStatusHookName<K> : never]: SyncStatusHookFor<R[K]> } & { [K in keyof R & string as R[K] extends BaseEntry ? LoadingStatusHookName<K> : never]: LoadingStatusHookFor<R[K]> };
1040
1209
  /**
1041
1210
  * Turn a Firestate registry into a map of typed React hooks. Each entry
1042
1211
  * `K` produces a hook named `use{Capitalize<K>}`.
@@ -1408,6 +1577,10 @@ interface FirestateProviderProps {
1408
1577
  onNavigate?: (path: string) => void;
1409
1578
  /** Custom error handler */
1410
1579
  onError?: (error: Error, context: ErrorContext) => void;
1580
+ /** Called after an undo action has been successfully applied */
1581
+ onUndo?: (action: UndoAction) => void;
1582
+ /** Called after a redo action has been successfully applied */
1583
+ onRedo?: (action: UndoAction) => void;
1411
1584
  /** React children */
1412
1585
  children: React.ReactNode;
1413
1586
  }
@@ -1489,5 +1662,5 @@ declare const FirestateStoreProvider: React.FC<FirestateStoreProviderProps>;
1489
1662
  */
1490
1663
  declare const useUnsavedChangesBlocker: () => boolean;
1491
1664
  //#endregion
1492
- export { type AnySelectedEntry, type ColEntry, type CollectionDefinition, type CollectionHandle, type CollectionOptions, type CollectionSelectorOptions, type CollectionState, type DeepPartial, type DocEntry, type DocumentDefinition, type DocumentHandle, type DocumentOptions, type DocumentSelectorOptions, type DocumentState, type ErrorContext, type FirestateApi, type FirestateConfig, FirestateContext, type FirestateEntry, FirestateProvider, type FirestateProviderProps, type FirestateRegistry, type FirestateStore, FirestateStoreProvider, type FirestateStoreProviderProps, type FirestoreObject, type InferCollectionData, type InferCollectionDocument, type InferDocument, type InferDocumentData, type SelectOptions, type SelectedColEntry, type SelectedCollectionHandle, type SelectedDocEntry, type SelectedDocumentHandle, type Store, type UndoAction, type UndoManager, type UndoManagerConfig, type UndoManagerState, type UndoManagerWithSubscribe, type UpdateOptions, type UseCollectionOptions, type UseDocumentOptions, applyDiff, applyDiffMutable, col, computeDiff, computeUndoDiff, createCollectionSubscription, createDiffAtPath, createDocumentSubscription, createFirestate, createStore, createUndoManager, deepClone, defineCollection, defineDocument, diffContainsPath, doc, extractDiffValue, flattenDiff, flattenDiffToFieldPaths, isDeepEqual, isDiffEmpty, mergeDiffs, shallow, unflattenDiff, useCollection, useDocument, useIsSynced, useStore, useUndoKeyboardShortcuts, useUndoManager, useUnsavedChangesBlocker };
1665
+ export { type AnySelectedEntry, type ColEntry, type CollectionDefinition, type CollectionHandle, type CollectionOptions, type CollectionSelectorOptions, type CollectionState, type DeepPartial, type DocEntry, type DocumentDefinition, type DocumentHandle, type DocumentOptions, type DocumentSelectorOptions, type DocumentState, type ErrorContext, type FirestateApi, type FirestateConfig, FirestateContext, type FirestateEntry, FirestateProvider, type FirestateProviderProps, type FirestateRegistry, type FirestateStore, FirestateStoreProvider, type FirestateStoreProviderProps, type FirestoreObject, type InferCollectionData, type InferCollectionDocument, type InferDocument, type InferDocumentData, type LoadingStatus, type SelectOptions, type SelectedColEntry, type SelectedCollectionHandle, type SelectedDocEntry, type SelectedDocumentHandle, type Store, type SyncStatus, type UndoAction, type UndoManager, type UndoManagerConfig, type UndoManagerState, type UndoManagerWithSubscribe, type UpdateOptions, type UseCollectionOptions, type UseCollectionStatusOptions, type UseDocumentOptions, type UseDocumentStatusOptions, applyDiff, applyDiffMutable, col, computeDiff, computeUndoDiff, createCollectionSubscription, createDiffAtPath, createDocumentSubscription, createFirestate, createStore, createUndoManager, deepClone, defineCollection, defineDocument, diffContainsPath, doc, extractDiffValue, flattenDiff, flattenDiffToFieldPaths, isDeepEqual, isDiffEmpty, mergeDiffs, shallow, unflattenDiff, useCollection, useCollectionLoadingStatus, useCollectionSyncStatus, useDocument, useDocumentLoadingStatus, useDocumentSyncStatus, useIsSynced, useStore, useUndoKeyboardShortcuts, useUndoManager, useUnsavedChangesBlocker };
1493
1666
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/registry/schema.ts","../src/utils/undo.ts","../src/core/store.ts","../src/react/hooks.ts","../src/registry/firestate.ts","../src/utils/diff.ts","../src/utils/shallow.ts","../src/core/document.ts","../src/core/collection.ts","../src/react/provider.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/registry/schema.ts","../src/utils/undo.ts","../src/core/store.ts","../src/react/hooks.ts","../src/registry/firestate.ts","../src/utils/diff.ts","../src/utils/shallow.ts","../src/core/document.ts","../src/core/collection.ts","../src/react/provider.tsx"],"mappings":"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"}