import React from "react"; import JanImage from "../JanImage"; import { displayDate } from "@/_utils/datetime"; import { conversationStatesAtom, getActiveConvoIdAtom, setActiveConvoIdAtom, } from "@/_helpers/JotaiWrapper"; import { useAtomValue, useSetAtom } from "jotai"; import { ProductType } from "@/_models/Product"; import Image from "next/image"; import { Conversation } from "@/_models/Conversation"; type Props = { conversation: Conversation; avatarUrl: string; name: string; updatedAt?: number; }; const HistoryItem: React.FC = ({ conversation, avatarUrl, name, updatedAt, }) => { const conversationStates = useAtomValue(conversationStatesAtom); const activeConvoId = useAtomValue(getActiveConvoIdAtom); const setActiveConvoId = useSetAtom(setActiveConvoIdAtom); const isSelected = activeConvoId === conversation.id; const onClick = () => { if (activeConvoId !== conversation.id) { setActiveConvoId(conversation.id); } }; const backgroundColor = isSelected ? "bg-gray-100 dark:bg-gray-700" : "bg-white dark:bg-gray-500"; let rightImageUrl: string | undefined; if (conversationStates[conversation.id]?.waitingForResponse === true) { rightImageUrl = "/icons/loading.svg"; } else if ( conversation && conversation.product.type === ProductType.GenerativeArt && conversation.lastImageUrl && conversation.lastImageUrl.trim().startsWith("https://") ) { rightImageUrl = conversation.lastImageUrl; } return ( ); }; export default HistoryItem;