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'; // eslint-disable-next-line import/no-cycle import MultiMessage from './MultiMessage'; import { cn } from '~/utils'; import Icon from './MessageIcon'; export default function Message(props: TMessageProps) { const { message, siblingIdx, siblingCount, conversation, setSiblingIdx, currentEditId, setCurrentEditId, } = props; if (!message) { return null; } const { text, children, messageId = null, isCreatedByUser, error, unfinished } = message ?? {}; let messageLabel = ''; if (isCreatedByUser) { messageLabel = 'anonymous'; } else { messageLabel = message.sender; } return ( <>
{messageLabel}
{/* Legacy Plugins */} {message?.plugin && } {message?.content ? ( ) : ( ({})} text={text ?? ''} message={message} isSubmitting={false} enterEdit={() => ({})} unfinished={!!unfinished} isCreatedByUser={isCreatedByUser ?? true} siblingIdx={siblingIdx ?? 0} setSiblingIdx={setSiblingIdx ?? (() => ({}))} /> )}
); }