UNPKG

react-pdf-simple-viewer

Version:

![License](https://img.shields.io/github/license/cdx0/react-pdf-simple-viewer?style=flat-square) ![NPM](https://img.shields.io/npm/v/react-pdf-simple-viewer?style=flat-square) ![typescript](https://img.shields.io/badge/%E6%94%AF%E6%8C%81-typescript-blue?s

38 lines (33 loc) 918 B
import * as pdfjs from 'pdfjs-dist'; import { PDFDocumentProxy } from 'pdfjs-dist/types/src/display/api'; import { useEffect, useState } from 'react'; pdfjs.GlobalWorkerOptions.workerSrc = `https://cdn.jsdelivr.net/npm/pdfjs-dist@${pdfjs.version}/build/pdf.worker.js`; type useDocumenParams = { URL: string; onSuccess?: (PDF: PDFDocumentProxy) => void; onError?: (e: any) => void; }; export function useDocumen({ URL, onSuccess, onError }: useDocumenParams) { const [PDF, setPDF] = useState<PDFDocumentProxy | null>(null); useEffect(() => { async function getPDF() { try { const P = await pdfjs.getDocument(URL).promise; setPDF(P); onSuccess?.(P); } catch (e) { console.log(e); onError?.(e); } } if (URL) { getPDF(); } return () => { if (PDF) { PDF.destroy(); } }; }, [URL]); return [PDF]; }