import type { FC } from 'react' import { memo, useRef, } from 'react' import { useHover } from 'ahooks' import type { ConversationItem } from '@/models/share' import Operation from '@/app/components/base/chat/chat-with-history/sidebar/operation' import cn from '@/utils/classnames' type ItemProps = { isPin?: boolean item: ConversationItem onOperate: (type: string, item: ConversationItem) => void onChangeConversation: (conversationId: string) => void currentConversationId: string } const Item: FC = ({ isPin, item, onOperate, onChangeConversation, currentConversationId, }) => { const ref = useRef(null) const isHovering = useHover(ref) const isSelected = currentConversationId === item.id return (
onChangeConversation(item.id)} >
{item.name}
{item.id !== '' && (
e.stopPropagation()}> onOperate(isPin ? 'unpin' : 'pin', item)} isShowDelete isShowRenameConversation onRenameConversation={() => onOperate('rename', item)} onDelete={() => onOperate('delete', item)} />
)}
) } export default memo(Item)