From fb958d0e798a061c50a434bb1b98ec374116887e Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 8 Jan 2025 16:50:08 +0100 Subject: [PATCH] Add files via upload --- ui/components/PDFViewer.tsx | 78 +++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 ui/components/PDFViewer.tsx diff --git a/ui/components/PDFViewer.tsx b/ui/components/PDFViewer.tsx new file mode 100644 index 0000000..c4b9cbb --- /dev/null +++ b/ui/components/PDFViewer.tsx @@ -0,0 +1,78 @@ +'use client'; +import { useEffect, useState } from 'react'; + +interface PDFViewerProps { + fileId: string; + page?: number; + searchText?: string; +} + +export default function PDFViewer({ fileId, page = 1, searchText }: PDFViewerProps) { + const pdfUrl = `/api/uploads/${fileId}/content${page ? `?page=${page}` : ''}`; + const [error, setError] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + setLoading(true); + setError(null); + console.log('PDFViewer - Tentative de chargement du PDF:', { + fileId, + page, + url: pdfUrl + }); + + // Vérifier si l'URL est accessible + fetch(pdfUrl) + .then(response => { + console.log('PDFViewer - Réponse du serveur:', { + status: response.status, + statusText: response.statusText, + headers: Object.fromEntries(response.headers.entries()) + }); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + setLoading(false); + }) + .catch(error => { + console.error('PDFViewer - Erreur lors du chargement du PDF:', error); + setError(error.message); + setLoading(false); + }); + }, [pdfUrl, fileId]); + + if (error) { + return ( +
+

Erreur de chargement du PDF: {error}

+
+ ); + } + + if (loading) { + return ( +
+

Chargement du PDF...

+
+ ); + } + + return ( +
+