import { Plugin } from '~/components/Messages/Content'; import MessageContent from './Content/MessageContent'; import type { TMessageProps } from '~/common'; import SiblingSwitch from './SiblingSwitch'; import { useMessageHelpers } from '~/hooks'; // eslint-disable-next-line import/no-cycle import MultiMessage from './MultiMessage'; import HoverButtons from './HoverButtons'; import SubRow from './SubRow'; import { cn } from '~/utils'; export default function Message(props: TMessageProps) { const { message, siblingIdx, siblingCount, setSiblingIdx, currentEditId, setCurrentEditId } = props; const { ask, icon, edit, isLast, enterEdit, handleScroll, conversation, isSubmitting, latestMessage, handleContinue, copyToClipboard, regenerateMessage, } = useMessageHelpers(props); const { text, children, messageId = null, isCreatedByUser, error, unfinished } = message ?? {}; if (!message) { return null; } return ( <>