manageCancelAndErrorMessage method
void
manageCancelAndErrorMessage()
Implementation
void manageCancelAndErrorMessage() {
isStreaming.value = false;
PupauMessage? userMessage = messages.firstWhereOrNull(
(message) => message.status == MessageStatus.sent,
);
userMessage?.isCancelled = true;
PupauMessage? assistantMessage = messages.firstWhereOrNull(
(message) =>
message.status != MessageStatus.sent && message.id == userMessage?.id,
);
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();
}