import React, { RefObject, useState } from 'react'; import html2pdf from 'html2pdf.js'; interface DocumentWrapperProps { children: React.ReactNode; wrapperRef: RefObject; } function DocumentWrapper({ children, wrapperRef, }: DocumentWrapperProps): JSX.Element { return
{children}
; } function useHtmlToPdf( ref: RefObject, opt: unknown ): [ArrayBuffer, () => void] { let [bufferData, setBufferData] = useState(new ArrayBuffer(0)); const update = async () => { setBufferData( await html2pdf() .set(opt) .from(ref.current) .outputPdf('arraybuffer') ); }; return [bufferData, update]; } export { DocumentWrapper, DocumentWrapperProps, useHtmlToPdf };