diff --git a/.changeset/flat-berries-sell.md b/.changeset/flat-berries-sell.md new file mode 100644 index 0000000000000..a46de3658945d --- /dev/null +++ b/.changeset/flat-berries-sell.md @@ -0,0 +1,5 @@ +--- +'@rocket.chat/pdf-worker': patch +--- + +Fixes broken chat transcript when there are more than one file per message diff --git a/ee/packages/pdf-worker/src/templates/ChatTranscript/ChatTranscript.fixtures.ts b/ee/packages/pdf-worker/src/templates/ChatTranscript/ChatTranscript.fixtures.ts index f5cb16365f8be..157ec50b64fb5 100644 --- a/ee/packages/pdf-worker/src/templates/ChatTranscript/ChatTranscript.fixtures.ts +++ b/ee/packages/pdf-worker/src/templates/ChatTranscript/ChatTranscript.fixtures.ts @@ -154,7 +154,14 @@ export const exampleData: WorkerData = { name: 'Christian Castro', username: 'cristiano.castro', }, - files: [{ name: 'screenshot.png', buffer: Buffer.from(base64Image, 'base64') }], + files: [ + { name: 'screenshot.png', buffer: Buffer.from(base64Image, 'base64') }, + { name: 'screenshot.png', buffer: Buffer.from(base64Image, 'base64') }, + { name: 'screenshot.png', buffer: Buffer.from(base64Image, 'base64') }, + { name: 'screenshot.png', buffer: Buffer.from(base64Image, 'base64') }, + { name: 'screenshot.png', buffer: Buffer.from(base64Image, 'base64') }, + { name: 'screenshot.png', buffer: Buffer.from(base64Image, 'base64') }, + ], }, { msg: 'Thank you, I am checking on that for you now.', diff --git a/ee/packages/pdf-worker/src/templates/ChatTranscript/components/Files.tsx b/ee/packages/pdf-worker/src/templates/ChatTranscript/components/Files.tsx index 55831dce9c674..925a1733272c0 100644 --- a/ee/packages/pdf-worker/src/templates/ChatTranscript/components/Files.tsx +++ b/ee/packages/pdf-worker/src/templates/ChatTranscript/components/Files.tsx @@ -7,14 +7,22 @@ import { fontScales } from '@rocket.chat/fuselage-tokens/typography.json'; import type { PDFFile } from '../../../types/ChatTranscriptData'; const styles = StyleSheet.create({ + container: { + marginTop: 8, + width: '100%', + }, file: { color: colors.n700, - marginTop: 4, + marginBottom: 16, flexDirection: 'column', fontSize: fontScales.c1.fontSize, + width: '100%', + }, + fileName: { + marginBottom: 6, }, image: { - width: 400, + width: '100%', maxHeight: 240, objectFit: 'contain', objectPosition: '0', @@ -31,10 +39,10 @@ const styles = StyleSheet.create({ }); export const Files = ({ files, invalidMessage }: { files: PDFFile[]; invalidMessage: string }) => ( - + {files?.map((file, index) => ( - - {file.name} + + {file.name} {file.buffer ? ( // Cache = false is required to avoid a bug in react-pdf // Which causes the image to be duplicated when using buffers because of bad caching diff --git a/ee/packages/pdf-worker/src/templates/ChatTranscript/components/Message.tsx b/ee/packages/pdf-worker/src/templates/ChatTranscript/components/Message.tsx index 4228ea2e37396..11dd186d350c9 100644 --- a/ee/packages/pdf-worker/src/templates/ChatTranscript/components/Message.tsx +++ b/ee/packages/pdf-worker/src/templates/ChatTranscript/components/Message.tsx @@ -52,7 +52,7 @@ const processMessage = (message: PDFMessage) => { }; const Message = ({ message, invalidFileMessage }: { message: PDFMessage; invalidFileMessage: string }) => ( - + 0)}> {message.divider && }