manageCancelAndErrorMessage method
void
manageCancelAndErrorMessage()
Implementation
void manageCancelAndErrorMessage() {
isStreaming.value = false;
_activeStreamingGroupId = null;
setDefaultMessageInputFieldHeight();
PupauMessage? userMessage = messages.firstWhereOrNull(
(message) => message.status == MessageStatus.sent,
);
userMessage?.isCancelled = true;
final String groupId = userMessage?.groupId.trim() ?? "";
PupauMessage? assistantMessage = groupId.isEmpty
? null
: messages.firstWhereOrNull(
(PupauMessage message) =>
message.status != MessageStatus.sent &&
message.groupId.trim() == groupId &&
message.sourceType == SourceType.llm,
);
if (assistantMessage != null) {
assistantMessage.status = MessageStatus.received;
assistantMessage.isCancelled = true;
assistantMessage.createdAt = DateTime.now();
assistantMessage.answer =
messageNotifier.messages
.firstWhereOrNull(
(NotifierMessage notifierMessage) =>
notifierMessage.idMessage == assistantMessage.id,
)
?.message ??
"";
}
resetLoadingMessage();
clearEmptyMessages();
messages.refresh();
update();
}