import React from "react"; import { Button } from "@/components/ui/button"; import { X, Check, RefreshCcw, Pencil, ClipboardCopy } from "lucide-react"; import { AutosizeTextarea } from "@/components/ui/autosize-textarea"; import { toast } from "sonner"; import { MessageProps } from "../types"; import { DocumentBadgesScrollArea } from "./DocumentBadgesScrollArea"; interface HumanMessageComponentProps extends MessageProps { onEdit?: () => void; onRegenerate?: () => void; isEditing?: boolean; onSave?: (content: string) => void; onCancelEdit?: () => void; } export const HumanMessageComponent = React.memo(({ message, setPreviewDocument, onEdit, onRegenerate, isEditing, onSave, onCancelEdit }: HumanMessageComponentProps) => { const [editedContent, setEditedContent] = React.useState(String(message.content)); if (message.response_metadata?.documents?.length) { return (
setPreviewDocument?.(doc)} onRemove={() => {}} removeable={false} maxHeight="200px" />
); } return (
{isEditing ? (
setEditedContent(e.target.value)} className="bg-muted p-5 rounded-md" maxHeight={300} />
) : ( <>
{String(message.content)}
)}
); }); HumanMessageComponent.displayName = "HumanMessageComponent";