import { Conversation } from "@/types"; import { IconCheck, IconMessage, IconPencil, IconTrash, IconX } from "@tabler/icons-react"; import { FC, KeyboardEvent, useEffect, useState } from "react"; interface Props { loading: boolean; conversations: Conversation[]; selectedConversation: Conversation; onSelectConversation: (conversation: Conversation) => void; onDeleteConversation: (conversation: Conversation) => void; onRenameConversation: (conversation: Conversation, name: string) => void; } export const Conversations: FC = ({ loading, conversations, selectedConversation, onSelectConversation, onDeleteConversation, onRenameConversation }) => { const [isDeleting, setIsDeleting] = useState(false); const [isRenaming, setIsRenaming] = useState(false); const [renameValue, setRenameValue] = useState(""); const handleEnterDown = (e: KeyboardEvent) => { if (e.key === "Enter") { e.preventDefault(); handleRename(selectedConversation); } }; const handleRename = (conversation: Conversation) => { onRenameConversation(conversation, renameValue); setRenameValue(""); setIsRenaming(false); }; useEffect(() => { if (isRenaming) { setIsDeleting(false); } else if (isDeleting) { setIsRenaming(false); } }, [isRenaming, isDeleting]); return (
{conversations.map((conversation, index) => ( ))}
); };