UNPKG

fenextjs-hook

Version:
56 lines 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePrintIframe = exports.usePrintData = void 0; const react_1 = require("react"); const useLocalStorage_1 = require("../useLocalStorage"); const usePrintData = ({ parse }) => { const { value, load } = (0, useLocalStorage_1.useLocalStorage)({ name: "fenext-print", parse, }); return { data: value, load, }; }; exports.usePrintData = usePrintData; const usePrintIframe = ({ urlBase = "/print", url, data, delayForPrint = 1500, }) => { const [loader, setLoader] = (0, react_1.useState)(false); const { setLocalStorage } = (0, useLocalStorage_1.useLocalStorage)({ name: "fenext-print", }); const onPrint = () => { setLoader(true); setLocalStorage(data); let iframe = document.getElementById("fenext-print"); if (!iframe) { iframe = document.createElement("iframe"); iframe.id = "fenext-print"; document.body.appendChild(iframe); iframe.style.display = "none"; } iframe.src = `${urlBase}${url}`; if (iframe.contentWindow) { iframe.contentWindow.onafterprint = () => { setLoader(false); }; } iframe.onload = function () { setTimeout(function () { iframe?.focus(); iframe?.contentWindow?.print(); }, delayForPrint); if (iframe?.contentWindow) { iframe.contentWindow.onafterprint = () => { setLoader(false); }; } }; }; return { loader, onPrint, }; }; exports.usePrintIframe = usePrintIframe; //# sourceMappingURL=index.js.map