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
-
- Object
- ZenController
- ZenQuery<
List< T> > - ZenInfiniteQuery
- 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< Function()T> > -
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