From ec940aeadadd64512f73c5631ed091b56c35eab2 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 8 Jan 2025 16:32:16 +0100 Subject: [PATCH] Update MessageSources.tsx Cards sources Doc RAG --- ui/components/MessageSources.tsx | 245 +++++++++++++++++++------------ 1 file changed, 152 insertions(+), 93 deletions(-) diff --git a/ui/components/MessageSources.tsx b/ui/components/MessageSources.tsx index c7ee945..6ca3472 100644 --- a/ui/components/MessageSources.tsx +++ b/ui/components/MessageSources.tsx @@ -23,44 +23,94 @@ const MessageSources = ({ sources }: { sources: Document[] }) => { document.body.classList.add('overflow-hidden-scrollable'); }; + const getSourceUrl = (source: Document) => { + if (source.metadata.isFile) { + // Pour les fichiers locaux, on retourne à la fois l'URL du viewer et l'URL directe du PDF + const page = source.metadata.page || 1; + return { + viewerUrl: source.metadata.url, // On utilise l'URL déjà construite + pdfUrl: `/api/uploads/${source.metadata.fileId}/content?page=${page}` + }; + } + // Pour les URLs web, on retourne la même URL pour les deux + return { + viewerUrl: source.metadata.url, + pdfUrl: source.metadata.url + }; + }; + return (
- {sources.slice(0, 3).map((source, i) => ( - -

- {source.metadata.title} -

-
-
- {source.metadata.url === 'File' ? ( -
- + {sources.slice(0, 3).map((source, i) => { + const urls = getSourceUrl(source); + const isFile = source.metadata.isFile; + + const CardContent = () => ( + <> +

+ {source.metadata.title} +

+
+
+ {isFile ? ( +
+ +
+ ) : ( + favicon + )} +

+ {isFile + ? `Page ${source.metadata.page || 1}` + : source.metadata.url.replace(/.+\/\/|www.|\..+/g, '')} +

+
+
+ {!isFile && ( + e.stopPropagation()} + > + Voir + + )} +
+
+ {i + 1}
- ) : ( - favicon - )} -

- {source.metadata.url.replace(/.+\/\/|www.|\..+/g, '')} -

-
-
-
- {i + 1} +
+ + ); + + return isFile ? ( + + + + ) : ( +
+
- - ))} + ); + })} {sources.length > 3 && ( )} - - - - +
+
); };