UNPKG

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