UNPKG

@pdf-viewer/react

Version:

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

50 lines (49 loc) 1.33 kB
import { jsx as x } from "react/jsx-runtime"; import { createContext as C, useState as l, useEffect as h, useMemo as S, useContext as v } from "react"; import { useLoadPdf as D } from "../utils/hooks/useLoadPdf.js"; import { usePdfProperties as F } from "../utils/hooks/usePdfProperties.js"; import { appConsole as M } from "../utils/appConsole.js"; const m = C({ pdf: void 0, pages: /* @__PURE__ */ new Map(), setPdfSrc: () => { }, setFilename: () => { }, loading: !1, loaderProgress: 0 }), R = ({ children: t, src: e, characterMap: u, onLoadError: c, onLoaded: P }) => { const [o, n] = l(e), [s, i] = l(), { pdf: r, pages: p, loading: d, loadingProgress: f } = D(o, u, { onLoadError: c, onLoaded: P }), a = F(o, r, s); h(() => { i(e == null ? void 0 : e.split("/").pop()), n(e); }, [e]); const g = S(() => ({ pdf: r, pages: p, pdfSrc: o, setPdfSrc: n, pdfProperties: a, setFilename: i, filename: s, loading: d, loaderProgress: f }), [r, p, o, a, d, f]); return /* @__PURE__ */ x(m.Provider, { value: g, children: o ? t : null }); }, b = () => { const t = v(m); return t.pdfSrc || M.error("Please use this hooks inside children component of RPDocument"), t; }; export { R as DocumentProvider, m as default, b as useDocumentContext };