Merge 80ac0c92ba into 89b5229ce9
This commit is contained in:
commit
33c61333d3
1 changed files with 19 additions and 4 deletions
|
|
@ -397,6 +397,8 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
|||
|
||||
const [isMessagesLoaded, setIsMessagesLoaded] = useState(false);
|
||||
|
||||
const [pendingRewrite, setPendingRewrite] = useState<{ content: string; messageId: string } | null>(null);
|
||||
|
||||
const [notFound, setNotFound] = useState(false);
|
||||
|
||||
const [isSettingsOpen, setIsSettingsOpen] = useState(false);
|
||||
|
|
@ -436,6 +438,12 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
|||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, []);
|
||||
|
||||
const chatHistoryRef = useRef<[string, string][]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
chatHistoryRef.current = chatHistory;
|
||||
}, [chatHistory]);
|
||||
|
||||
const messagesRef = useRef<Message[]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
|
|
@ -478,7 +486,7 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
|||
files: fileIds,
|
||||
focusMode: focusMode,
|
||||
optimizationMode: optimizationMode,
|
||||
history: [...chatHistory, ['human', message]],
|
||||
history: [...chatHistoryRef.current],
|
||||
}),
|
||||
);
|
||||
|
||||
|
|
@ -604,15 +612,22 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
|||
const message = messages[index - 1];
|
||||
|
||||
setMessages((prev) => {
|
||||
return [...prev.slice(0, messages.length > 2 ? index - 1 : 0)];
|
||||
return [...prev.slice(0, messages.length >= 2 ? index - 1 : 0)];
|
||||
});
|
||||
setChatHistory((prev) => {
|
||||
return [...prev.slice(0, messages.length > 2 ? index - 1 : 0)];
|
||||
return [...prev.slice(0, messages.length >= 2 ? index - 1 : 0)];
|
||||
});
|
||||
|
||||
sendMessage(message.content, message.messageId);
|
||||
setPendingRewrite({content: message.content, messageId: message.messageId});
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (pendingRewrite) {
|
||||
sendMessage(pendingRewrite.content, pendingRewrite.messageId);
|
||||
setPendingRewrite(null);
|
||||
}
|
||||
}, [pendingRewrite]);
|
||||
|
||||
useEffect(() => {
|
||||
if (isReady && initialMessage && ws?.readyState === 1) {
|
||||
sendMessage(initialMessage);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue