UNPKG

@pdf-viewer/react

Version:

A react-pdf-viewer component for React and Next.js. Suitable for react-pdf document.

70 lines (69 loc) 1.86 kB
import { jsx as F } from "react/jsx-runtime"; import { createContext as M, useState as l, useEffect as j, useMemo as k, useContext as w } from "react"; import { useLoadPdf as E } from "../utils/hooks/useLoadPdf.js"; import { usePdfProperties as L } from "../utils/hooks/usePdfProperties.js"; import { appConsole as R } from "../utils/appConsole.js"; import "pdfjs-dist"; import "../utils/types.js"; import "../th_TH-d627cd51.js"; import "../utils/getThumbnailViewport.js"; import "./ConfigContext.js"; import "./DocumentPasswordContext.js"; import "../utils/convertPdfDate.js"; import "../utils/formatFileSize.js"; const u = M({ pdf: void 0, pages: /* @__PURE__ */ new Map(), setPdfSrc: () => { }, setFilename: () => { }, loading: !1, loaderProgress: 0, error: void 0 }), Q = ({ children: t, src: e, characterMap: c, onLoadError: P, onLoaded: g, onLoadProgress: x, disableAutoFetch: C, disableStream: h, rangeChunkSize: v, loaderImage: S }) => { const [o, n] = l(e), [i, s] = l(), { pdf: r, pages: p, loading: m, loadingProgress: d, error: f } = E(o, c, { onLoadError: P, onLoaded: g, onLoadProgress: x, disableAutoFetch: C, disableStream: h, rangeChunkSize: v, loaderImage: S }), a = L(o, r, i); j(() => { s(e == null ? void 0 : e.split("/").pop()), n(e); }, [e]); const D = k(() => ({ pdf: r, pages: p, pdfSrc: o, setPdfSrc: n, pdfProperties: a, setFilename: s, filename: i, loading: m, loaderProgress: d, error: f }), [r, p, o, a, m, d, f]); return /* @__PURE__ */ F(u.Provider, { value: D, children: o ? t : null }); }, T = () => { const t = w(u); return t.pdfSrc || R.error("Please use this hooks inside children component of RPDocument"), t; }; export { Q as DocumentProvider, u as default, T as useDocumentContext };