import { Text, View, StyleSheet } from '@react-pdf/renderer'; import { fontScale } from '@rocket.chat/fuselage-tokens/dist/typography.json'; import type { PDFMessage } from '../../../types/ChatTranscriptData'; import { Markup } from '../markup'; import { Divider } from './Divider'; import { Files } from './Files'; import { MessageHeader } from './MessageHeader'; import Quotes from './Quotes'; import { isSystemMessage, markupEntriesGreaterThan10, messageLongerThanPage, splitByTens } from './utils'; const styles = StyleSheet.create({ wrapper: { marginBottom: 16, paddingBottom: 16, paddingHorizontal: 32, }, message: { marginTop: 1, fontSize: fontScale.p2.fontSize, }, systemMessage: { fontStyle: 'italic', }, }); const processMd = (message: PDFMessage) => splitByTens(message.md).map((chunk, index) => ( } /> )); const processMessage = (message: PDFMessage) => { if (message.md) { if (markupEntriesGreaterThan10(message.md)) { return processMd(message); } return ( ); } return ( {message.msg} ); }; export type MessageProps = { message: PDFMessage; invalidFileMessage: string }; const Message = ({ message, invalidFileMessage }: MessageProps) => ( 0)}> {message.divider && } {processMessage(message)} {message.quotes && } {message.files && } ); export default Message;