'use client'; import { Button } from './ui/button'; import { type Dispatch, type SetStateAction, useEffect, useRef, useState, } from 'react'; import { Textarea } from './ui/textarea'; import { deleteTrailingMessages } from '@/app/(chat)/actions'; import type { UseChatHelpers } from '@ai-sdk/react'; import type { ChatMessage } from '@/lib/types'; import { getTextFromMessage } from '@/lib/utils'; export type MessageEditorProps = { message: ChatMessage; setMode: Dispatch>; setMessages: UseChatHelpers['setMessages']; regenerate: UseChatHelpers['regenerate']; }; export function MessageEditor({ message, setMode, setMessages, regenerate, }: MessageEditorProps) { const [isSubmitting, setIsSubmitting] = useState(false); const [draftContent, setDraftContent] = useState( getTextFromMessage(message), ); const textareaRef = useRef(null); useEffect(() => { if (textareaRef.current) { adjustHeight(); } }, []); const adjustHeight = () => { if (textareaRef.current) { textareaRef.current.style.height = 'auto'; textareaRef.current.style.height = `${textareaRef.current.scrollHeight + 2}px`; } }; const handleInput = (event: React.ChangeEvent) => { setDraftContent(event.target.value); adjustHeight(); }; return (