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