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" && ( - - ))} + ?.type != "user")) && ( + + )} {currentSessionChatState == "loading" && (
{ setEditedContent(e.target.value); + textareaRef.current!.style.height = "auto"; e.target.style.height = `${e.target.scrollHeight}px`; }} onKeyDown={(e) => {