Skip to content

Commit

Permalink
Merge pull request smaranjitghose#604 from ashuvssut/pdf-gen-timer
Browse files Browse the repository at this point in the history
"generating pdf toast implemented"
  • Loading branch information
smaranjitghose authored Mar 14, 2021
2 parents d890de9 + 3f6ff5e commit b17ea6e
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 12 deletions.
140 changes: 140 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"react-easy-emoji": "1.4.0",
"react-helmet": "^6.1.0",
"react-icons": "^4.1.0",
"react-js-snackbar": "^1.0.4",
"react-leaflet": "^3.1.0",
"react-reveal": "^1.2.2",
"react-router-dom": "^5.2.0",
Expand Down
6 changes: 6 additions & 0 deletions src/assets/images/editor/checkmark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 40 additions & 12 deletions src/pages/Editor/containers/editContext.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
import React, { useState } from "react";
import DomToImage from "dom-to-image";
import { jsPDF } from "jspdf";
import ReactSnackBar from "react-js-snackbar";
import checkBox from "./../../../assets/images/editor/checkmark.svg";

export const EditContext = React.createContext();

const svgStyles = {
height: 50,
position: "absolute",
top: 0,
left: 0,
};
const EditContextProvider = props => {
const aImagePrefix = "";
const [pageSrc, setPageSrc] = useState(`${aImagePrefix}blank1.png`);
Expand Down Expand Up @@ -31,6 +38,9 @@ const EditContextProvider = props => {
bodyText: "",
});

const [show, setShow] = useState(false);
const [showing, setShowing] = useState(false);

const ImageNameMap = {
Ruled1: "ruled1.png",
Ruled2: "ruled2.jpg",
Expand All @@ -39,14 +49,12 @@ const EditContextProvider = props => {
Blank2: "blank2.jpg",
};

const isBodyHandler = (e) => {

if(e.target.classList.contains('id-body')){
const isBodyHandler = e => {
if (e.target.classList.contains("id-body")) {
setIsBody(true);
}else{
} else {
setIsBody(false);
}

};

const pageSrcHandler = e => {
Expand Down Expand Up @@ -77,7 +85,9 @@ const EditContextProvider = props => {

const downloadAction = e => {
e !== undefined && e.preventDefault();

if (e !== undefined && e.target.name === "as PDF") {
showToast();
}
const node = document.getElementById("outputPage");
const scale = 750 / node.offsetWidth;
const options = {
Expand All @@ -95,7 +105,7 @@ const EditContextProvider = props => {
.then(dataUrl => {
const img = new Image();
img.src = dataUrl;
console.log(e.target.name)
console.log(e.target.name);
if (e !== undefined && e.target.name === "as PNG") {
downloadURI(dataUrl, "generatedDoc.png");
} else if (e !== undefined && e.target.name === "as PDF") {
Expand All @@ -114,16 +124,31 @@ const EditContextProvider = props => {
link.click();
document.body.removeChild(link);
};


const downloadPdf = imgDataUri => {
const showToast = () => {
if (showing) return;

setShow(true);
setShowing(true);
// setTimeout(() => {
// setShow(false);
// setShowing(false);
// }, 2000);
};
const downloadPdf = async imgDataUri => {
const doc = new jsPDF("p", "pt", "a4");
const width = doc.internal.pageSize.width;
const height = doc.internal.pageSize.height;
doc.text(10, 20, "");
doc.addImage(imgDataUri, "PNG", 0, 0, width, height);

doc.save();
await new Promise((resolve, reject) => { // Wait for PDF download
doc.save(); //save PDF
resolve(true);
});

//close notif popup
setShow(false);
setShowing(false);
};

const importTxt = e => {
Expand Down Expand Up @@ -180,6 +205,9 @@ const EditContextProvider = props => {
}}
>
{props.children}
<ReactSnackBar Icon={<img style={svgStyles} src={checkBox} alt="" />} Show={show}>
Generating PDF! Please wait...
</ReactSnackBar>
</EditContext.Provider>
);
};
Expand Down

0 comments on commit b17ea6e

Please sign in to comment.