ZenInfiniteQuery<T> class

A specialized query for infinite scrolling / pagination.

It manages a list of pages List<T> and handles fetching the next page based on the previous page's data.

T is the type of data in a single page (e.g. a Page object or a List of items).

Inheritance
Available extensions

Constructors

ZenInfiniteQuery({required Object queryKey, required Future<T> infiniteFetcher(dynamic pageParam), required dynamic getNextPageParam(T lastPage, List<T> allPages), dynamic initialPageParam, ZenQueryConfig? config, List<T>? initialData, ZenScope? scope, bool autoDispose = true})

Properties

activeWatcherCount int
Get count of active watchers (useful for debugging)
no setterinherited
autoDispose bool
Whether to automatically dispose when scope disposes
finalinherited
config ZenQueryConfig
Configuration for this query
finalinherited
createdAt DateTime
no setterinherited
data Rx<List<T>?>
Current data (null if not loaded yet)
finalinherited
enabled RxBool
Whether the query is enabled to fetch data
finalinherited
error Rx<Object?>
Current error (null if no error)
finalinherited
fetcher Future<List<T>> Function()
Function that fetches the data
finalinherited
getNextPageParam → dynamic Function(T lastPage, List<T> allPages)
Function to determine the next page param based on the last page. Return null if there are no more pages.
final
hasData bool
Whether the query has data
no setterinherited
hasError bool
Whether the query has an error
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
hasNextPage RxBool
final
infiniteFetcher Future<T> Function(dynamic pageParam)
The actual fetcher that takes a page param.
final
initialData List<T>?
Optional initial data
finalinherited
initialPageParam → dynamic
The initial page parameter to use for the first page.
final
isDisposed bool
Whether this query has been disposed
no setterinherited
isFetchingNextPage RxBool
final
isInitialized bool
no setterinherited
isLoading RxBool
Whether the query is currently loading
no setterinherited
isReady bool
no setterinherited
isRefetching bool
Whether the query is currently refetching (loading while having data)
no setterinherited
isStale bool
Whether data is stale and needs refetching
no setterinherited
queryKey String
Unique key for this query (used for caching and deduplication)
finalinherited
reactiveObjectCount int
Get count of tracked reactive objects for debugging
no setterinherited
reactiveStats Map<String, int>
Get stats about reactive objects
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scope ZenScope?
Optional scope - if provided, query will be tied to this scope
finalinherited
status Rx<ZenQueryStatus>
Current status of the query
finalinherited

Methods

addDisposer(void disposer()) → void
Add a disposer function that will be called when the controller is disposed
inherited
addUpdateListener(String updateId, VoidCallback listener) → void
Register a listener for a specific update ID
inherited
autoDispose<T>(ValueNotifier<T> obs, bool disposeCondition(T), void callback(T)) ZenWorkerHandle

Available on ZenController, provided by the ZenControllerAdvancedExtension extension

Worker that auto-disposes when a condition is met
condition<T>(ValueNotifier<T> obs, bool condition(T), void callback(T)) ZenWorkerHandle
inherited
createEffect<T>({required String name}) ZenEffect<T>
Create an effect that will be auto-disposed with this controller
inherited
createWorkerGroup() ZenWorkerGroup
Create a managed worker group
inherited
createWorkers(List<ZenWorkerHandle Function()> creators) List<ZenWorkerHandle>

Available on ZenController, provided by the ZenControllerWorkerExtension extension

Create multiple workers in one call
debounce<T>(ValueNotifier<T> obs, void callback(T), Duration duration) ZenWorkerHandle
inherited
didChangeAccessibilityFeatures() → void
Called when the system changes the set of currently active accessibility features.
inherited
didChangeAppLifecycleState(AppLifecycleState state) → void
Override from WidgetsBindingObserver to handle app lifecycle
inherited
didChangeLocales(List<Locale>? locales) → void
Called when the system tells the app that the user's locale has changed. For example, if the user changes the system language settings.
inherited
didChangeMetrics() → void
Called when the application's dimensions change. For example, when a phone is rotated.
inherited
didChangePlatformBrightness() → void
Called when the platform brightness changes.
inherited
didChangeTextScaleFactor() → void
Called when the platform's text scale factor changes.
inherited
didChangeViewFocus(ViewFocusEvent event) → void
Called whenever the PlatformDispatcher receives a notification that the focus state on a view has changed.
inherited
didHaveMemoryPressure() → void
Called when the system is running low on memory.
inherited
didPopRoute() Future<bool>
Called when the system tells the app to pop the current route, such as after a system back button press or back gesture.
inherited
didPushRoute(String route) Future<bool>
Called when the host tells the application to push a new route onto the navigator.
inherited
didPushRouteInformation(RouteInformation routeInformation) Future<bool>
Called when the host tells the application to push a new RouteInformation and a restoration state onto the router.
inherited
didRequestAppExit() Future<AppExitResponse>
Called when a request is received from the system to exit the application.
inherited
dispose() → void
Dispose the controller and clean up ALL resources - PREVENTS MEMORY LEAKS
inherited
disposeWorkers(List<ZenWorkerHandle> workers) → void

Available on ZenController, provided by the ZenControllerWorkerExtension extension

Dispose specific workers
ever<T>(ValueNotifier<T> obs, void callback(T)) ZenWorkerHandle
Type-safe convenience worker methods
inherited
fetch({bool force = false}) Future<List<T>>
Fetch or refetch data
override
fetchNextPage() Future<void>
Fetch the next page of data.
getResourceStats() Map<String, dynamic>
Get comprehensive resource usage statistics
inherited
getWorkerStats() Map<String, dynamic>
Get worker statistics for debugging/monitoring
inherited
handleCancelBackGesture() → void
Called when a predictive back gesture is canceled, indicating that no navigation should occur.
inherited
handleCommitBackGesture() → void
Called when a predictive back gesture is finished successfully, indicating that the current route should be popped.
inherited
handleStartBackGesture(PredictiveBackEvent backEvent) bool
Called at the start of a predictive back gesture.
inherited
handleUpdateBackGestureProgress(PredictiveBackEvent backEvent) → void
Called when a predictive back gesture moves.
inherited
interval<T>(ValueNotifier<T> obs, void callback(T), Duration duration) ZenWorkerHandle
inherited
invalidate() → void
Invalidate query (mark as stale)
inherited
limited<T>(ValueNotifier<T> obs, void callback(T), int maxExecutions) ZenWorkerHandle

Available on ZenController, provided by the ZenControllerAdvancedExtension extension

Worker that executes a limited number of times
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
obs<T>(T initialValue) Rx<T>
Create and auto-track a reactive variable - PREVENTS MEMORY LEAKS
inherited
obsList<T>([List<T>? initialValue]) RxList<T>
Create and auto-track a reactive list - PREVENTS MEMORY LEAKS
inherited
obsMap<K, V>([Map<K, V>? initialValue]) RxMap<K, V>
Create and auto-track a reactive map - PREVENTS MEMORY LEAKS
inherited
obsSet<T>([Set<T>? initialValue]) RxSet<T>
Create and auto-track a reactive set - PREVENTS MEMORY LEAKS
inherited
once<T>(ValueNotifier<T> obs, void callback(T)) ZenWorkerHandle
inherited
onClose() → void
User-defined cleanup hook - called before internal disposal
override
onDetached() → void
Called when the app is detached
inherited
onHidden() → void
Called when the app is hidden
inherited
onInactive() → void
Called when the app is inactive
inherited
onInit() → void
inherited
onPause() → void
Called when the app is paused (goes to background)
inherited
onReady() → void
inherited
onResume() → void
Called when the app is resumed (comes back to foreground)
inherited
pauseAllWorkers() → void
Pause all workers managed by this controller
inherited
pauseSpecificWorkers(List<ZenWorkerHandle> workers) → void

Available on ZenController, provided by the ZenControllerWorkerExtension extension

Pause specific workers
pauseWorkers() → void
Pause workers - convenience method for UI callbacks (no parameters)
inherited
refetch() Future<List<T>>
Refetch data (force refresh)
inherited
removeUpdateListener(String updateId, VoidCallback listener) → void
Remove a listener for a specific update ID
inherited
reset() → void
Reset query to idle state
inherited
resumeAllWorkers() → void
Resume all workers managed by this controller
inherited
resumeSpecificWorkers(List<ZenWorkerHandle> workers) → void

Available on ZenController, provided by the ZenControllerWorkerExtension extension

Resume specific workers
resumeWorkers() → void
Resume workers - convenience method for UI callbacks (no parameters)
inherited
select<R>(R selector(List<T> data)) ZenQuery<R>
Creates a derived query that selects a subset of data.
inherited
setData(List<T> newData) → void
Manually set data (for optimistic updates)
inherited
startObservingAppLifecycle() → void
Start observing app lifecycle events
inherited
stopObservingAppLifecycle() → void
Stop observing app lifecycle events
inherited
throttle<T>(ValueNotifier<T> obs, void callback(T), Duration duration) ZenWorkerHandle
inherited
toString() String
A string representation of this object.
inherited
trackReactive(Rx reactive) → void
Manually track a reactive object (for external reactive objects)
inherited
update([List<String>? updateIds]) → void
Optimized update method that can notify specific listeners or all listeners
inherited
watch<T>(ValueNotifier<T> observable, void callback(T), {WorkerType type = WorkerType.ever, Duration? duration, bool condition(T)?}) ZenWorkerHandle
Create workers that auto-dispose with controller
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited