diff --git a/web/src/app/chat/ChatPage.tsx b/web/src/app/chat/ChatPage.tsx
index 0a4d4ee24..a3239114a 100644
--- a/web/src/app/chat/ChatPage.tsx
+++ b/web/src/app/chat/ChatPage.tsx
@@ -964,6 +964,11 @@ export function ChatPage({
(message) => message.messageId === messageIdToResend
);
+ updateRegenerationState(
+ regenerationRequest
+ ? { regenerating: true, finalMessageIndex: messageIdToResend || 0 }
+ : null
+ );
const messageMap = currentMessageMap(completeMessageDetail);
const messageToResendParent =
messageToResend?.parentMessageId !== null &&
@@ -991,12 +996,6 @@ export function ChatPage({
setSubmittedMessage(currMessage);
- updateRegenerationState(
- regenerationRequest
- ? { regenerating: true, finalMessageIndex: messageIdToResend || 0 }
- : null
- );
-
updateChatState("loading");
const currMessageHistory =
@@ -1811,9 +1810,14 @@ export function ChatPage({
? messageMap.get(message.parentMessageId)
: null;
if (
- currentSessionRegenerationState?.regenerating &&
- message.messageId >
- currentSessionRegenerationState?.finalMessageIndex!
+ (currentSessionRegenerationState?.regenerating &&
+ message.messageId >
+ currentSessionRegenerationState?.finalMessageIndex!) ||
+ (currentSessionChatState == "loading" &&
+ ((i >= messageHistory.length - 2 &&
+ message.type == "user") ||
+ (i >= messageHistory.length - 1 &&
+ !currentSessionRegenerationState?.regenerating)))
) {
return <>>;
}
@@ -1890,7 +1894,8 @@ export function ChatPage({
if (
currentSessionRegenerationState?.regenerating &&
currentSessionChatState == "loading" &&
- message.messageId == messageHistory.length - 1
+ (i == messageHistory.length - 1 ||
+ currentSessionRegenerationState?.regenerating)
) {
return <>>;
}
@@ -2093,17 +2098,17 @@ export function ChatPage({
}
})}
- {currentSessionChatState == "loading" ||
+ {(currentSessionChatState == "loading" ||
(loadingError &&
!currentSessionRegenerationState?.regenerating &&
messageHistory[messageHistory.length - 1]
- ?.type != "user" && (
-