import React from 'react'; import { Message } from '../../Messages/MessagesTypes'; import { DocumentItem, MessageMetadata, ActionInfo } from '../../Messages/MessageParts'; import { WorkflowFile } from '../../../../hooks/usePlayground'; import styles from '../../Messages/Messages.module.css'; import logStyles from './LogMessage.module.css'; export interface LogMessageProps { message: Message; showDocuments?: boolean; showMetadata?: boolean; showProgress?: boolean; renderDocument?: (document: any, message: Message) => React.ReactNode; onFileDelete?: (file: WorkflowFile) => Promise; onFileRemove?: (file: WorkflowFile) => Promise; onFileView?: (file: WorkflowFile) => Promise; deletingFiles?: Set; previewingFiles?: Set; removingFiles?: Set; workflowId?: string; } /** * Renders a single message in log style (list/table UI) */ export const LogMessage: React.FC = ({ message, showDocuments = true, showMetadata = true, showProgress = true, renderDocument, onFileDelete, onFileRemove, onFileView, deletingFiles, previewingFiles, removingFiles, workflowId }) => { return (
{/* Metadata row */} {showMetadata && (
)} {/* Content row */}
{message.message && (
{message.message}
)} {message.summary && message.summary !== message.message && (
Summary: {message.summary}
)} {/* Action information */}
{/* Documents row */} {showDocuments && message.documents && Array.isArray(message.documents) && message.documents.length > 0 && (
{message.documentsLabel && (
{message.documentsLabel}
)}
{message.documents.map((doc) => (
{renderDocument ? renderDocument(doc, message) : ( )}
))}
)}
); };