/* eslint-disable @next/next/no-img-element */ import { Dialog, DialogPanel, DialogTitle, Transition, TransitionChild, } from '@headlessui/react'; import { Document } from '@langchain/core/documents'; import { File } from 'lucide-react'; import { Fragment, useState } from 'react'; const MessageSources = ({ sources }: { sources: Document[] }) => { const [isDialogOpen, setIsDialogOpen] = useState(false); const closeModal = () => { setIsDialogOpen(false); document.body.classList.remove('overflow-hidden-scrollable'); }; const openModal = () => { setIsDialogOpen(true); 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 (
{source.metadata.title}
{isFile ? `Page ${source.metadata.page || 1}` : source.metadata.url.replace(/.+\/\/|www.|\..+/g, '')}