Merge pull request #182 from SHENG-X/fix-save-as-pdf

fix: Save as pdf saved downloaded too many files on multiple clicks
This commit is contained in:
Amruth Pillai
2020-06-13 13:13:10 +05:30
committed by GitHub

View File

@ -104,12 +104,16 @@ const importJson = (event, dispatch) => {
fr.readAsText(event.target.files[0]); fr.readAsText(event.target.files[0]);
}; };
const saveAsPdf = (pageRef, panZoomRef, quality, type) => let saveAsPdfTimer = null;
new Promise(resolve => { const saveAsPdf = (pageRef, panZoomRef, quality, type) => {
if(saveAsPdfTimer){
return;
}
return new Promise(resolve => {
panZoomRef.current.autoCenter(1); panZoomRef.current.autoCenter(1);
panZoomRef.current.reset(); panZoomRef.current.reset();
setTimeout(() => { saveAsPdfTimer = setTimeout(() => {
html2canvas(pageRef.current, { html2canvas(pageRef.current, {
scale: 5, scale: 5,
useCORS: true, useCORS: true,
@ -142,17 +146,23 @@ const saveAsPdf = (pageRef, panZoomRef, quality, type) =>
doc.addImage(image, 'JPEG', marginX, marginY, canvasWidth, canvasHeight, null, 'SLOW'); doc.addImage(image, 'JPEG', marginX, marginY, canvasWidth, canvasHeight, null, 'SLOW');
doc.save(`RxResume_${Date.now()}.pdf`); doc.save(`RxResume_${Date.now()}.pdf`);
saveAsPdfTimer = null;
resolve(); resolve();
}); });
}, 250); }, 250);
}); });
}
const saveAsMultiPagePdf = (pageRef, panZoomRef, quality) => let saveAsMultiPagePdfTimer = null;
new Promise(resolve => { const saveAsMultiPagePdf = (pageRef, panZoomRef, quality) => {
if(saveAsMultiPagePdfTimer){
return;
}
return new Promise(resolve => {
panZoomRef.current.autoCenter(1); panZoomRef.current.autoCenter(1);
panZoomRef.current.reset(); panZoomRef.current.reset();
setTimeout(() => { saveAsMultiPagePdfTimer = setTimeout(() => {
html2canvas(pageRef.current, { html2canvas(pageRef.current, {
scale: 5, scale: 5,
useCORS: true, useCORS: true,
@ -182,10 +192,12 @@ const saveAsMultiPagePdf = (pageRef, panZoomRef, quality) =>
} }
doc.save(`RxResume_${Date.now()}.pdf`); doc.save(`RxResume_${Date.now()}.pdf`);
saveAsMultiPagePdfTimer = null;
resolve(); resolve();
}); });
}, 250); }, 250);
}); });
}
export { export {
move, move,