import * as React from "react"; import Text from "@siteground/styleguide/lib/components/text/text"; import cn from "@siteground/styleguide/lib/utils/classnames"; import { Flex } from "@siteground/styleguide"; import { translate } from "i18n-calypso"; import { useGetImage } from "@/chat/hooks/use-get-image"; import { ImagePreview } from "../image-handler/image-handler"; import { parseMessageContent } from "@/chat/utils/parse-message-content"; import { DeletedMediaChip } from "./deleted-media-chip"; import { FileItem } from "./file-item"; const DeletedImageChip = () => { return ; }; const ImageOrDeletedChip = ({ imageUrl, alt, renderDeleted, }: { imageUrl: string; alt: string; renderDeleted?: boolean; }) => { const { image, isLoading } = useGetImage(imageUrl); if (isLoading) return null; if (!image) { return renderDeleted ? : null; } return renderDeleted ? null : (
); }; interface Props { message: string; } const ClientMessage: React.FC = ({ message }) => { const classes = cn("wp-ai-studio-client-message", "wp-ai-studio-message-vertical-align-client"); const contentClasses = cn("wp-ai-studio-client-message__content"); const renderMessageContent = () => { const parsedContent = parseMessageContent(message); if (!parsedContent) { return {message}; } const { textItems, imageItems, fileItems } = parsedContent; const hasMedia = imageItems.length > 0 || fileItems.length > 0; return ( <> {textItems.map((item, index) => ( {item.text} ))} {hasMedia && ( <> {imageItems.map((item, index) => ( ))} {fileItems.map((item, index) => ( ))} {imageItems.map((item, index) => ( ))} {fileItems.map((item, index) => ( ))} )} ); }; return (
{renderMessageContent()}
); }; export default ClientMessage;