@pdf-viewer/react
Version:
A react-pdf-viewer component for React and Next.js. Suitable for react-pdf document.
61 lines (60 loc) • 2.14 kB
JavaScript
import { jsx as P } from "react/jsx-runtime";
import { createContext as x, useContext as v, useState as u, useEffect as w } from "react";
import { appConsole as C } from "../utils/appConsole.js";
import { useDocumentContext as l } from "./RPDocumentContext.js";
import { useZoomContext as y } from "./ZoomContext.js";
import { PAGE_PADDING as f } from "../utils/constants.js";
import { usePagesRotateContext as D } from "./PagesRotateContext.js";
import "../utils/hooks/useLoadPdf.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/hooks/usePdfProperties.js";
import "../utils/convertPdfDate.js";
import "../utils/formatFileSize.js";
import "./InitialStateContext.js";
import "../utils/getZoomLevel.js";
import "./LayoutContainerContext.js";
import "./ViewModeContext.js";
import "./RotationContext.js";
import "./GlobalCurrentPage.js";
import "./EventCallbackContext.js";
import "../utils/hooks/useDebounce.js";
const g = x({
widths: [],
heights: [],
setWidths: () => {
},
setHeights: () => {
}
}), T = () => {
const e = v(g), { widths: r, heights: o } = e;
if (r && o) {
const m = r.every((t) => typeof t == "number"), i = o.every((t) => typeof t == "number");
(!m || !i) && C.warn("Please use this hooks inside children component of RPProvider");
}
return e;
}, U = ({ children: e }) => {
const [r, o] = u([]), [m, i] = u([]), { pages: t } = l(), { currentZoom: n } = y(), { pageRotate: p } = D();
return w(() => {
if (!t)
return;
const h = [], c = [];
for (const s of Array.from(t.values())) {
const d = p[s.page.pageNumber], a = s.page.getViewport({
scale: n,
rotation: d,
dontFlip: !0
});
h.push(a.width + f), c.push(a.height + f);
}
o((s) => [...h]), i((s) => [...c]);
}, [n, p, t]), /* @__PURE__ */ P(g.Provider, { value: { widths: r, heights: m, setWidths: o, setHeights: i }, children: e });
};
export {
U as DimensionPagesProvider,
T as useDimensionPagesContext
};