import type React from "react"; import type { Message } from "@/ipc/ipc_types"; import { forwardRef } from "react"; import ChatMessage from "./ChatMessage"; import { SetupBanner } from "../SetupBanner"; import { useSettings } from "@/hooks/useSettings"; import { useStreamChat } from "@/hooks/useStreamChat"; import { selectedChatIdAtom } from "@/atoms/chatAtoms"; import { useAtom, useAtomValue } from "jotai"; import { RefreshCw } from "lucide-react"; import { Button } from "@/components/ui/button"; interface MessagesListProps { messages: Message[]; messagesEndRef: React.RefObject; } export const MessagesList = forwardRef( function MessagesList({ messages, messagesEndRef }, ref) { const { streamMessage, isStreaming, error, setError } = useStreamChat(); const { isAnyProviderSetup } = useSettings(); const selectedChatId = useAtomValue(selectedChatIdAtom); return (
{messages.length > 0 ? ( messages.map((message, index) => ( )) ) : (
No messages yet
{!isAnyProviderSetup() && }
)} {messages.length > 0 && !isStreaming && (
)}
); } );