import Markdown from "../../Common/Markdown" import React from "react" import { Image, Tooltip } from "antd" import { WebSearch } from "./WebSearch" import { CheckIcon, ClipboardIcon, Pen, RotateCcw } from "lucide-react" import { EditMessageForm } from "./EditMessageForm" import { useTranslation } from "react-i18next" import { MessageSource } from "./MessageSource" type Props = { message: string hideCopy?: boolean botAvatar?: JSX.Element userAvatar?: JSX.Element isBot: boolean name: string images?: string[] currentMessageIndex: number totalMessages: number onRengerate: () => void onEditFormSubmit: (value: string) => void isProcessing: boolean webSearch?: {} isSearchingInternet?: boolean sources?: any[] hideEditAndRegenerate?: boolean onSourceClick?: (source: any) => void } export const PlaygroundMessage = (props: Props) => { const [isBtnPressed, setIsBtnPressed] = React.useState(false) const [editMode, setEditMode] = React.useState(false) const { t } = useTranslation("common") return (
{props.isBot ? ( !props.botAvatar ? (
) : ( props.botAvatar ) ) : !props.userAvatar ? (
) : ( props.userAvatar )}
{props.isBot ? props.name : "You"} {props.isBot && props.isSearchingInternet && props.currentMessageIndex === props.totalMessages - 1 ? ( ) : null}
{!editMode ? ( ) : ( setEditMode(false)} isBot={props.isBot} /> )}
{/* source if aviable */} {props.images && props.images && props.images.filter((img) => img.length > 0).length > 0 && (
{props.images .filter((image) => image.length > 0) .map((image, index) => ( Uploaded Image ))}
)} {props.isBot && props?.sources && props?.sources.length > 0 && (
{props?.sources?.map((source, index) => ( ))}
)} {!props.isProcessing && !editMode && (
{props.isBot && ( <> {!props.hideCopy && ( )} {!props.hideEditAndRegenerate && props.currentMessageIndex === props.totalMessages - 1 && ( )} )} {!props.hideEditAndRegenerate && ( )}
)}
) }