in apps/chat/src/components/Chat/ConversationCompareItem.tsx [21:79]
export function ConversationCompareItem({
conv,
comparableConversations,
selectedConversation,
conversations,
onConversationSelect,
}: ConversationCompareItemProps) {
const handleConversationSelect = useCallback(() => {
const selectedConversation = comparableConversations.find(
(comparableConversation) => conv.id === comparableConversation.id,
);
if (selectedConversation) {
onConversationSelect(selectedConversation);
}
}, [comparableConversations, conv.id, onConversationSelect]);
const handleVersionChange = useCallback(
(_: string, newVersion: PublicVersionOption) => {
const selectedConversation = conversations.find(
(conv) => conv.id === newVersion.id,
);
if (selectedConversation) {
onConversationSelect(selectedConversation);
}
},
[conversations, onConversationSelect],
);
return (
<div
key={conv.id}
className="flex cursor-pointer items-center justify-between gap-4 rounded pr-[14px] hover:bg-accent-primary-alpha"
data-qa="conversation-row"
onClick={handleConversationSelect}
>
<div className="w-full truncate">
<ConversationRow
featureContainerClassNames="!w-full"
itemComponentClassNames="group hover:bg-transparent !pl-3 !h-[34px]"
item={conv}
/>
</div>
{conv.publicationInfo?.version && (
<PublicVersionSelector
btnClassNames="cursor-pointer h-[34px] flex items-center"
publicVersionGroupId={getPublicItemIdWithoutVersion(
conv.publicationInfo.version,
conv.id,
)}
excludeEntityId={selectedConversation?.id}
onChangeSelectedVersion={handleVersionChange}
/>
)}
</div>
);
}