regenerate button (#138)

This commit is contained in:
Mckay Wrigley
2023-03-25 07:12:51 -06:00
committed by GitHub
parent d7fdcd0dfe
commit d27326125b
5 changed files with 47 additions and 43 deletions
+21 -27
View File
@@ -4,7 +4,6 @@ import { ChatInput } from "./ChatInput";
import { ChatLoader } from "./ChatLoader";
import { ChatMessage } from "./ChatMessage";
import { ModelSelect } from "./ModelSelect";
import { Regenerate } from "./Regenerate";
import { SystemPrompt } from "./SystemPrompt";
interface Props {
@@ -17,15 +16,13 @@ interface Props {
messageError: boolean;
loading: boolean;
lightMode: "light" | "dark";
onSend: (message: Message, isResend: boolean) => void;
onSend: (message: Message, isResend?: boolean, deleteCount?: number) => void;
onUpdateConversation: (conversation: Conversation, data: KeyValuePair) => void;
onEditMessage: (message: Message, messageIndex: number) => void;
onDeleteMessage: (message: Message, messageIndex: number) => void;
onRegenerate: () => void;
stopConversationRef: MutableRefObject<boolean>;
}
export const Chat: FC<Props> = ({ conversation, models, apiKey, serverSideApiKeyIsSet, messageIsStreaming, modelError, messageError, loading, lightMode, onSend, onUpdateConversation, onEditMessage, onDeleteMessage, onRegenerate, stopConversationRef }) => {
export const Chat: FC<Props> = ({ conversation, models, apiKey, serverSideApiKeyIsSet, messageIsStreaming, modelError, messageError, loading, lightMode, onSend, onUpdateConversation, onEditMessage, stopConversationRef }) => {
const [currentMessage, setCurrentMessage] = useState<Message>();
const [autoScrollEnabled, setAutoScrollEnabled] = useState(true);
@@ -55,6 +52,7 @@ export const Chat: FC<Props> = ({ conversation, models, apiKey, serverSideApiKey
useEffect(() => {
scrollToBottom();
textareaRef.current?.focus();
setCurrentMessage(conversation.messages[conversation.messages.length - 2]);
}, [conversation.messages]);
useEffect(() => {
@@ -69,6 +67,8 @@ export const Chat: FC<Props> = ({ conversation, models, apiKey, serverSideApiKey
}
}, []);
console.log("currentMessage", currentMessage);
return (
<div className="relative flex-1 overflow-none dark:bg-[#343541] bg-white">
{!(apiKey || serverSideApiKeyIsSet) ? (
@@ -120,7 +120,6 @@ export const Chat: FC<Props> = ({ conversation, models, apiKey, serverSideApiKey
messageIndex={index}
lightMode={lightMode}
onEditMessage={onEditMessage}
onDeleteMessage={onDeleteMessage}
/>
))}
@@ -134,27 +133,22 @@ export const Chat: FC<Props> = ({ conversation, models, apiKey, serverSideApiKey
)}
</div>
{messageError ? (
<Regenerate
onRegenerate={() => {
if (currentMessage) {
onSend(currentMessage, true);
}
}}
/>
) : (
<ChatInput
stopConversationRef={stopConversationRef}
textareaRef={textareaRef}
messageIsStreaming={messageIsStreaming}
model={conversation.model}
onSend={(message) => {
setCurrentMessage(message);
onSend(message, false);
}}
onRegenerate={onRegenerate}
/>
)}
<ChatInput
stopConversationRef={stopConversationRef}
textareaRef={textareaRef}
messageIsStreaming={messageIsStreaming}
messages={conversation.messages}
model={conversation.model}
onSend={(message) => {
setCurrentMessage(message);
onSend(message);
}}
onRegenerate={() => {
if (currentMessage) {
onSend(currentMessage, true, 2);
}
}}
/>
</>
)}
</div>