mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-08-04 06:50:23 +00:00
fix: try to fix message regeneration being appended instead of replaced (#7084)
This commit is contained in:
parent
a521541cb7
commit
06d5bc734b
@ -272,15 +272,19 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
|||||||
|
|
||||||
// 3 mean message response from AI
|
// 3 mean message response from AI
|
||||||
if (pb.authorType == 3 && answerStreamMessageId.isNotEmpty) {
|
if (pb.authorType == 3 && answerStreamMessageId.isNotEmpty) {
|
||||||
temporaryMessageIDMap[pb.messageId.toString()] =
|
temporaryMessageIDMap.putIfAbsent(
|
||||||
answerStreamMessageId;
|
pb.messageId.toString(),
|
||||||
|
() => answerStreamMessageId,
|
||||||
|
);
|
||||||
answerStreamMessageId = '';
|
answerStreamMessageId = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1 mean message response from User
|
// 1 mean message response from User
|
||||||
if (pb.authorType == 1 && questionStreamMessageId.isNotEmpty) {
|
if (pb.authorType == 1 && questionStreamMessageId.isNotEmpty) {
|
||||||
temporaryMessageIDMap[pb.messageId.toString()] =
|
temporaryMessageIDMap.putIfAbsent(
|
||||||
questionStreamMessageId;
|
pb.messageId.toString(),
|
||||||
|
() => questionStreamMessageId,
|
||||||
|
);
|
||||||
questionStreamMessageId = '';
|
questionStreamMessageId = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -422,8 +426,9 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
|||||||
(question) {
|
(question) {
|
||||||
if (!isClosed) {
|
if (!isClosed) {
|
||||||
final streamAnswer = _createAnswerStreamMessage(
|
final streamAnswer = _createAnswerStreamMessage(
|
||||||
answerStream!,
|
stream: answerStream!,
|
||||||
question.messageId,
|
questionMessageId: question.messageId,
|
||||||
|
fakeQuestionMessageId: questionStreamMessage.id,
|
||||||
);
|
);
|
||||||
|
|
||||||
lastSentMessage = question;
|
lastSentMessage = question;
|
||||||
@ -479,8 +484,8 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
|||||||
(success) {
|
(success) {
|
||||||
if (!isClosed) {
|
if (!isClosed) {
|
||||||
final streamAnswer = _createAnswerStreamMessage(
|
final streamAnswer = _createAnswerStreamMessage(
|
||||||
answerStream!,
|
stream: answerStream!,
|
||||||
answerMessageId - 1,
|
questionMessageId: answerMessageId - 1,
|
||||||
).copyWith(id: answerMessageIdString);
|
).copyWith(id: answerMessageIdString);
|
||||||
|
|
||||||
add(ChatEvent.receiveMessage(streamAnswer));
|
add(ChatEvent.receiveMessage(streamAnswer));
|
||||||
@ -491,11 +496,14 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Message _createAnswerStreamMessage(
|
Message _createAnswerStreamMessage({
|
||||||
AnswerStream stream,
|
required AnswerStream stream,
|
||||||
Int64 questionMessageId,
|
required Int64 questionMessageId,
|
||||||
) {
|
String? fakeQuestionMessageId,
|
||||||
answerStreamMessageId = (questionMessageId + 1).toString();
|
}) {
|
||||||
|
answerStreamMessageId = fakeQuestionMessageId == null
|
||||||
|
? (questionMessageId + 1).toString()
|
||||||
|
: "${fakeQuestionMessageId}_ans";
|
||||||
|
|
||||||
return TextMessage(
|
return TextMessage(
|
||||||
id: answerStreamMessageId,
|
id: answerStreamMessageId,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user