import { useRecoilValue } from 'recoil'; 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 { Plugin } from '~/components/Messages/Content'; import SubRow from '~/components/Chat/Messages/SubRow'; import { MessageContext } from '~/Providers'; // eslint-disable-next-line import/no-cycle import MultiMessage from './MultiMessage'; import { cn } from '~/utils'; import store from '~/store'; import Icon from './MessageIcon'; export default function Message(props: TMessageProps) { const fontSize = useRecoilValue(store.fontSize); const { message, siblingIdx, siblingCount, conversation, setSiblingIdx, currentEditId, setCurrentEditId, } = props; 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 ( <>