Add files via upload
This commit is contained in:
parent
ec940aeada
commit
fb958d0e79
1 changed files with 78 additions and 0 deletions
78
ui/components/PDFViewer.tsx
Normal file
78
ui/components/PDFViewer.tsx
Normal file
|
@ -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<string | null>(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 (
|
||||
<div className="w-full h-full flex items-center justify-center bg-red-50 text-red-500">
|
||||
<p>Erreur de chargement du PDF: {error}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (loading) {
|
||||
return (
|
||||
<div className="w-full h-full flex items-center justify-center bg-gray-50">
|
||||
<p>Chargement du PDF...</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="w-full h-full bg-white">
|
||||
<iframe
|
||||
src={pdfUrl}
|
||||
className="w-full h-full border-0"
|
||||
title="PDF Viewer"
|
||||
sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-modals"
|
||||
loading="eager"
|
||||
referrerPolicy="no-referrer"
|
||||
allow="fullscreen"
|
||||
onLoad={() => console.log('PDFViewer - iframe chargée')}
|
||||
onError={(e) => {
|
||||
console.error('PDFViewer - Erreur iframe:', e);
|
||||
setError('Erreur lors de l\'affichage du PDF');
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
Loading…
Add table
Reference in a new issue