import React from 'react'; import RenameButton from './RenameButton'; import DeleteButton from './DeleteButton'; import { useSelector, useDispatch } from 'react-redux'; import { setConversation } from '~/store/convoSlice'; import { setMessages } from '~/store/messageSlice'; import { setText } from '~/store/textSlice'; import manualSWR from '~/utils/fetchers'; export default function Conversation({ id, parentMessageId, title = 'New conversation' }) { const dispatch = useDispatch(); const { conversationId } = useSelector((state) => state.convo); const { trigger, isMutating } = manualSWR(`http://localhost:3050/messages/${id}`, 'get'); const clickHandler = async () => { if (conversationId === id) { return; } dispatch(setConversation({ error: false, conversationId: id, parentMessageId })); const data = await trigger(); dispatch(setMessages(data)); dispatch(setText('')); }; const aProps = { className: 'animate-flash group relative flex cursor-pointer items-center gap-3 break-all rounded-md bg-gray-800 py-3 px-3 pr-14 hover:bg-gray-800' }; if (conversationId !== id) { aProps.className = 'group relative flex cursor-pointer items-center gap-3 break-all rounded-md py-3 px-3 hover:bg-[#2A2B32] hover:pr-4'; } return ( clickHandler()} {...aProps} >
{title}
{conversationId === id ? (
) : (
)} ); }