ZenStreamQuery<T> constructor
ZenStreamQuery<T> ({})
Implementation
ZenStreamQuery({
required this.queryKey,
required this.streamFn,
ZenQueryConfig? config,
T? initialData,
this.scope,
this.autoDispose = true,
bool autoSubscribe = true,
}) : config = ZenQueryConfig.defaults.merge(config).cast<T>(),
data = Rx<T?>(initialData) {
// ⭐ AUTOMATIC CHILD CONTROLLER TRACKING
// If a parent controller is currently initializing (onInit is running),
// automatically register this query with it for automatic disposal
if (ZenController.currentParentController != null) {
ZenController.currentParentController!.trackController(this);
}
if (initialData != null) {
status.value = ZenQueryStatus.success;
}
_initReactiveProperties();
if (scope != null) {
_registerInScope();
}
if (autoSubscribe) {
subscribe();
}
ZenLifecycleManager.instance.addLifecycleListener(_handleLifecycleChange);
}