import { useAtomValue } from 'jotai'; import type { TMessageProps } from '~/common'; import MinimalHoverButtons from '~/components/Chat/Messages/MinimalHoverButtons'; import MessageContent from '~/components/Chat/Messages/Content/MessageContent'; import SearchContent from '~/components/Chat/Messages/Content/SearchContent'; import SiblingSwitch from '~/components/Chat/Messages/SiblingSwitch'; import SubRow from '~/components/Chat/Messages/SubRow'; import { fontSizeAtom } from '~/store/fontSize'; import { MessageContext } from '~/Providers'; import { useAttachments } from '~/hooks'; import MultiMessage from './MultiMessage'; import { cn } from '~/utils'; import Icon from './MessageIcon'; export default function Message(props: TMessageProps) { const fontSize = useAtomValue(fontSizeAtom); const { message, siblingIdx, siblingCount, conversation, setSiblingIdx, currentEditId, setCurrentEditId, } = props; const { attachments, searchResults } = useAttachments({ messageId: message?.messageId, attachments: message?.attachments, }); if (!message) { return null; } const { text = '', children, error = false, messageId = '', unfinished = false, isCreatedByUser = true, } = message; let messageLabel = ''; if (isCreatedByUser) { messageLabel = 'anonymous'; } else { messageLabel = message.sender ?? ''; } return ( <>