UNPKG

@pdf-viewer/react

Version:

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

53 lines (52 loc) 1.55 kB
import { jsx as C } from "react/jsx-runtime"; import { createContext as x, useContext as P, useState as F, useCallback as r } from "react"; import { useDocumentContext as h } from "./RPDocumentContext.js"; import { useToolbarComponentContext as T } from "./ToolbarComponentContext.js"; import { useDocumentPasswordContext as v } from "./DocumentPasswordContext.js"; import { useToolComponentContext as L } from "./ToolComponentContext.js"; const i = x({ dragging: !1, handleDragLeave: () => { }, handleDragEnter: () => { }, handleDrop: () => { } }), R = () => P(i), S = ({ children: c }) => { const [f, t] = F(!1), { setFilename: n, setPdfSrc: a } = h(), { openFileTool: s } = T(), { openFileTool: l } = L(), { setPassword: u } = v(), m = r( (e) => { var p; e.preventDefault(), e.stopPropagation(), t(!1); const o = (p = e.dataTransfer) == null ? void 0 : p.files[0]; if (!o || o.type !== "application/pdf") return; const D = URL.createObjectURL(o); n(o.name), a(D), u(""); }, [n, a] ), d = r( (e) => { e.preventDefault(), e.stopPropagation(), !(!s || !l) && t(!0); }, [s, l] ), g = r((e) => { e.preventDefault(), e.stopPropagation(), t(!1); }, []); return /* @__PURE__ */ C( i.Provider, { value: { dragging: f, handleDragLeave: g, handleDragEnter: d, handleDrop: m }, children: c } ); }; export { i as DropFileZoneContext, S as DropFileZoneProvider, R as useDropFileZoneContext };