'use client'; import * as React from 'react'; import { Document, Page, pdfjs } from 'react-pdf'; import 'react-pdf/dist/esm/Page/AnnotationLayer.css'; import 'react-pdf/dist/esm/Page/TextLayer.css'; import { Loader2, AlertTriangle } from 'lucide-react'; import { Skeleton } from './ui/skeleton'; import { cn } from '@/lib/utils'; pdfjs.GlobalWorkerOptions.workerSrc = `/pdf.worker.min.js`; interface PdfThumbnailProps { fileUrl: string; className?: string; } export function PdfThumbnail({ fileUrl, className }: PdfThumbnailProps) { const [numPages, setNumPages] = React.useState(null); const [error, setError] = React.useState(null); const containerRef = React.useRef(null); const [width, setWidth] = React.useState(200); React.useEffect(() => { if (containerRef.current) { setWidth(containerRef.current.getBoundingClientRect().width); } }, []); function onDocumentLoadSuccess({ numPages }: { numPages: number }) { setNumPages(numPages); setError(null); } function onDocumentLoadError(error: Error) { console.error('Failed to load PDF for thumbnail:', error); setError('Failed to load preview.'); } const loadingSkeleton = ; if (error) { return (

{error}

); } return (
); }