"use client"; import { useState, useEffect } from 'react'; export default function PdfViewer({ pdfUrl, pageNumber }) { const [loading, setLoading] = useState(true); const [error, setError] = useState(false); // Reset loading state when URL or page changes useEffect(() => { setLoading(true); setError(false); }, [pdfUrl, pageNumber]); if (!pdfUrl) { return (

No PDF available for this document.

); } // PDF pages in our data are 0-indexed; PDF.js viewer expects 1-indexed pages const viewerPage = (pageNumber ?? 0) + 1; // Proxy the PDF through our own API to bypass CORS restrictions. // Then use the browser's built-in PDF viewer via tag. const proxyUrl = `/api/pdf-proxy?url=${encodeURIComponent(pdfUrl)}#page=${viewerPage}&zoom=75`; return (
{loading && !error && (

Loading PDF...

This may take a moment for large documents.

)} {error && (

⚠️ Failed to load PDF

The document may be unavailable or too large.

Open PDF directly ↗
)}