export function ConversationCompareItem()

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>
  );
}