From 46cb7ca577f8856ff44189259b2f9fca85f47c69 Mon Sep 17 00:00:00 2001 From: Will Chen Date: Fri, 2 May 2025 14:55:46 -0700 Subject: [PATCH] redo reverts code (when possible) (#75) --- src/components/chat/ChatInput.tsx | 4 +++ src/components/chat/MessagesList.tsx | 45 ++++++++++++++++++++++++++-- src/ipc/handlers/app_handlers.ts | 1 + src/ipc/ipc_types.ts | 1 + 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/components/chat/ChatInput.tsx b/src/components/chat/ChatInput.tsx index d77e892..8b349d4 100644 --- a/src/components/chat/ChatInput.tsx +++ b/src/components/chat/ChatInput.tsx @@ -53,6 +53,7 @@ import { TooltipTrigger, } from "../ui/tooltip"; import { useNavigate } from "@tanstack/react-router"; +import { useVersions } from "@/hooks/useVersions"; const showTokenBarAtom = atom(false); @@ -61,6 +62,8 @@ export function ChatInput({ chatId }: { chatId?: number }) { const [inputValue, setInputValue] = useAtom(chatInputValueAtom); const textareaRef = useRef(null); const { settings, updateSettings, isAnyProviderSetup } = useSettings(); + const appId = useAtomValue(selectedAppIdAtom); + const { refreshVersions } = useVersions(appId); const { streamMessage, isStreaming, setIsStreaming, error, setError } = useStreamChat(); const [showError, setShowError] = useState(true); @@ -162,6 +165,7 @@ export function ChatInput({ chatId }: { chatId?: number }) { } finally { setIsApproving(false); setIsPreviewOpen(true); + refreshVersions(); // Keep same as handleReject refreshProposal(); diff --git a/src/components/chat/MessagesList.tsx b/src/components/chat/MessagesList.tsx index 85758c5..7836a34 100644 --- a/src/components/chat/MessagesList.tsx +++ b/src/components/chat/MessagesList.tsx @@ -9,6 +9,9 @@ import { selectedChatIdAtom } from "@/atoms/chatAtoms"; import { useAtom, useAtomValue } from "jotai"; import { RefreshCw } from "lucide-react"; import { Button } from "@/components/ui/button"; +import { useVersions } from "@/hooks/useVersions"; +import { selectedAppIdAtom } from "@/atoms/appAtoms"; +import { showError } from "@/lib/toast"; interface MessagesListProps { messages: Message[]; @@ -17,6 +20,8 @@ interface MessagesListProps { export const MessagesList = forwardRef( function MessagesList({ messages, messagesEndRef }, ref) { + const appId = useAtomValue(selectedAppIdAtom); + const { versions, revertVersion } = useVersions(appId); const { streamMessage, isStreaming, error, setError } = useStreamChat(); const { isAnyProviderSetup } = useSettings(); const selectedChatId = useAtomValue(selectedChatIdAtom); @@ -39,11 +44,42 @@ export const MessagesList = forwardRef(