From 30662118d7c1fc47e71185a8756b41f823346b49 Mon Sep 17 00:00:00 2001 From: Will Chen Date: Fri, 2 May 2025 16:27:45 -0700 Subject: [PATCH] avoid edge case with undo (#78) --- src/components/chat/MessagesList.tsx | 118 +++++++++++++-------------- 1 file changed, 58 insertions(+), 60 deletions(-) diff --git a/src/components/chat/MessagesList.tsx b/src/components/chat/MessagesList.tsx index e44edda..c1bf7f8 100644 --- a/src/components/chat/MessagesList.tsx +++ b/src/components/chat/MessagesList.tsx @@ -11,7 +11,7 @@ import { Loader2, RefreshCw, Undo } from "lucide-react"; import { Button } from "@/components/ui/button"; import { useVersions } from "@/hooks/useVersions"; import { selectedAppIdAtom } from "@/atoms/appAtoms"; -import { showError } from "@/lib/toast"; +import { showError, showSuccess } from "@/lib/toast"; import { IpcClient } from "@/ipc/ipc_client"; import { chatMessagesAtom } from "@/atoms/chatAtoms"; @@ -26,10 +26,11 @@ export const MessagesList = forwardRef( const { versions, revertVersion } = useVersions(appId); const { streamMessage, isStreaming, error, setError } = useStreamChat(); const { isAnyProviderSetup } = useSettings(); - const selectedChatId = useAtomValue(selectedChatIdAtom); + const setMessages = useSetAtom(chatMessagesAtom); const [isUndoLoading, setIsUndoLoading] = useState(false); const [isRetryLoading, setIsRetryLoading] = useState(false); + const [selectedChatId, setSelectedChatId] = useAtom(selectedChatIdAtom); return (
@@ -45,63 +46,61 @@ export const MessagesList = forwardRef( {!isAnyProviderSetup() && }
)} - {messages.length > 0 && !isStreaming && ( + {messages.length > 3 && !isStreaming && (
- {messages[messages.length - 1].role === "assistant" && ( - - )} + }} + > + {isUndoLoading ? ( + + ) : ( + + )} + Undo + + )}