feat(conversation): add support for WidgetRef in conversation delta listener

This commit is contained in:
cogwheel0
2025-12-06 20:30:39 +05:30
parent 79df725a9d
commit 1380a84989

View File

@@ -69,6 +69,14 @@ class ConversationDeltaListener {
); );
return; return;
} }
if (ref is WidgetRef) {
_subscription = ref.listenManual(
conversationDeltaStreamProvider(_request),
handleNext,
fireImmediately: false,
);
return;
}
if (ref is ProviderContainer) { if (ref is ProviderContainer) {
_subscription = ref.listen( _subscription = ref.listen(
conversationDeltaStreamProvider(_request), conversationDeltaStreamProvider(_request),
@@ -102,6 +110,9 @@ class ConversationDeltaListener {
if (ref is Ref) { if (ref is Ref) {
return ref.mounted; return ref.mounted;
} }
// For WidgetRef and ProviderContainer, rely on explicit disposal.
// Callers using WidgetRef must ensure dispose() is called when the
// widget unmounts.
return !_disposed; return !_disposed;
} }
} }