fix: regenerating the last answer doesn't work (#7029)

* fix: regenerate not working for last message

* chore: code cleanup
This commit is contained in:
Richard Shiue 2024-12-22 14:47:11 +08:00 committed by GitHub
parent ed052c6792
commit b8e7d57ee6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 12 additions and 22 deletions

View File

@ -221,13 +221,6 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
answerStream = null;
answerStreamMessageId = '';
},
startAnswerStreaming: (Message message) {
emit(
state.copyWith(
promptResponseState: PromptResponseState.streamingAnswer,
),
);
},
failedSending: () {
final lastMessage = chatController.messages.lastOrNull;
if (lastMessage != null) {
@ -246,7 +239,7 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
emit(
state.copyWith(
promptResponseState: PromptResponseState.streamingAnswer,
promptResponseState: PromptResponseState.awaitingAnswer,
),
);
},
@ -436,7 +429,6 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
add(ChatEvent.finishSending(question));
add(ChatEvent.receiveMessage(streamAnswer));
add(ChatEvent.startAnswerStreaming(streamAnswer));
}
},
(err) {
@ -487,7 +479,6 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
);
add(ChatEvent.receiveMessage(streamAnswer));
add(ChatEvent.startAnswerStreaming(streamAnswer));
}
},
(err) => Log.error("Failed to send message: ${err.msg}"),
@ -591,8 +582,6 @@ class ChatEvent with _$ChatEvent {
const factory ChatEvent.regenerateAnswer(String id) = _RegenerateAnswer;
// streaming answer
const factory ChatEvent.startAnswerStreaming(Message message) =
_StartAnswerStreaming;
const factory ChatEvent.stopStream() = _StopStream;
const factory ChatEvent.didFinishAnswerStream() = _DidFinishAnswerStream;

View File

@ -216,8 +216,9 @@ class _ChatContentPage extends StatelessWidget {
isLastMessage: isLastMessage,
onSelectedMetadata: (metadata) =>
_onSelectMetadata(context, metadata),
onRegenerate: (id) =>
context.read<ChatBloc>().add(ChatEvent.regenerateAnswer(id)),
onRegenerate: () => context
.read<ChatBloc>()
.add(ChatEvent.regenerateAnswer(message.id)),
);
},
);

View File

@ -37,7 +37,7 @@ class ChatAIMessageBubble extends StatelessWidget {
final Widget child;
final bool showActions;
final bool isLastMessage;
final void Function(String)? onRegenerate;
final void Function()? onRegenerate;
@override
Widget build(BuildContext context) {
@ -94,7 +94,7 @@ class ChatAIBottomInlineActions extends StatelessWidget {
final Widget child;
final Message message;
final void Function(String)? onRegenerate;
final void Function()? onRegenerate;
@override
Widget build(BuildContext context) {
@ -130,7 +130,7 @@ class ChatAIMessageHover extends StatefulWidget {
final Widget child;
final Message message;
final void Function(String)? onRegenerate;
final void Function()? onRegenerate;
@override
State<ChatAIMessageHover> createState() => _ChatAIMessageHoverState();
@ -280,7 +280,7 @@ class AIResponseActionBar extends StatelessWidget {
final Message message;
final bool showDecoration;
final void Function(String)? onRegenerate;
final void Function()? onRegenerate;
@override
Widget build(BuildContext context) {
@ -343,7 +343,7 @@ class AIResponseActionBar extends StatelessWidget {
),
RegenerateButton(
isInHoverBar: showDecoration,
onTap: () => onRegenerate?.call(message.id),
onTap: () => onRegenerate?.call(),
),
];
}
@ -435,7 +435,7 @@ class ChatAIMessagePopup extends StatelessWidget {
final Widget child;
final Message message;
final void Function(String)? onRegenerate;
final void Function()? onRegenerate;
@override
Widget build(BuildContext context) {
@ -497,7 +497,7 @@ class ChatAIMessagePopup extends StatelessWidget {
Widget _regenerateButton(BuildContext context) {
return MobileQuickActionButton(
onTap: () {
onRegenerate?.call(message.id);
onRegenerate?.call();
Navigator.of(context).pop();
},
icon: FlowySvgs.ai_undo_s,

View File

@ -47,7 +47,7 @@ class ChatAIMessageWidget extends StatelessWidget {
final String chatId;
final String? refSourceJsonString;
final void Function(ChatMessageRefSource metadata)? onSelectedMetadata;
final void Function(String messageId)? onRegenerate;
final void Function()? onRegenerate;
final bool isStreaming;
final bool isLastMessage;