download-preview.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // import generateDownloadPreview from "./generate-download-preview.js"
  2. import generatePreview from "../preview/generate-preview.js"
  3. // download a signable (html) demo
  4. export default function downloadPreview(selector, signed = false) {
  5. selector = document.querySelector(selector)
  6. selector?.addEventListener("click", async function (e) {
  7. e.preventDefault()
  8. //localStorage.removeItem("client_signature")
  9. let signedFilename = "contract-signed.html"
  10. let unsignedFilename = "contract-demo.html"
  11. let filename = signed ? signedFilename : unsignedFilename
  12. const contractPreview = await generatePreview(signed, true, signedFilename)
  13. selector.disabled = true
  14. downloadFile(filename, contractPreview)
  15. setTimeout(() => {
  16. selector.disabled = false
  17. }, 300)
  18. // e.preventDefault()
  19. }, false)
  20. }
  21. // https://ourcodeworld.com/articles/read/189/how-to-create-a-file-and-generate-a-download-with-javascript-in-the-browser-without-a-server
  22. function downloadFile(filename, text) {
  23. let element = document.createElement('a')
  24. element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text))
  25. element.setAttribute('download', filename)
  26. element.style.display = 'none'
  27. document.body.appendChild(element)
  28. element.click()
  29. document.body.removeChild(element)
  30. }