watch method
void Function()
watch(
- ZenController controller, {
- void onData(
- T?
- void onLoading()?,
- void onError()?,
- String? name,
Unified watch method for all effect aspects using ZenWorkers directly
Implementation
void Function() watch(
ZenController controller, {
void Function(T?)? onData,
void Function(bool)? onLoading,
void Function(Object?)? onError,
String? name,
}) {
if (isDisposed) {
return () {}; // Return no-op disposer for disposed effects
}
final disposers = <ZenWorkerHandle>[];
if (onData != null) {
final handle = ZenWorkers.ever<T?>(_data, onData);
disposers.add(handle);
}
if (onLoading != null) {
final handle = ZenWorkers.ever<bool>(_isLoading, onLoading);
disposers.add(handle);
}
if (onError != null) {
final handle = ZenWorkers.ever<Object?>(_error, onError);
disposers.add(handle);
}
// Return combined disposer
return () {
for (final handle in disposers) {
handle.dispose();
}
};
}