@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
JavaScript
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
};