- switch to using downloadjs for downloading files

- increase timeout for cloud function
This commit is contained in:
Amruth Pillai
2020-07-16 17:34:21 +05:30
parent 406a3dba56
commit 0019fee34e
5 changed files with 24 additions and 26 deletions

View File

@ -1,11 +1,12 @@
.screenshot {
filter: grayscale(100%);
@apply shadow-xl rounded border-2 border-primary-100 ml-10;
@apply transition-opacity duration-200 ease-in-out;
@apply transition-all duration-200 ease-in-out;
}
.screenshot:hover {
@apply opacity-50;
@apply transition-opacity duration-200 ease-in-out;
filter: grayscale(0%);
@apply transition-all duration-200 ease-in-out;
}
.screenshot:first-child {

View File

@ -1,5 +1,6 @@
import firebase from 'gatsby-plugin-firebase';
import { clone } from 'lodash';
import download from 'downloadjs';
import React, { memo, useContext, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { FaPrint } from 'react-icons/fa';
@ -30,20 +31,13 @@ const ExportModal = () => {
}
};
const openFile = (blob) => {
if (typeof window !== `undefined`) {
const url = window.URL.createObjectURL(blob, { oneTimeOnly: true });
window && window.open(url);
setLoadingSingle(false);
}
};
const handleSinglePageDownload = async () => {
setLoadingSingle(true);
const printResume = firebase.functions().httpsCallable('printResume');
const { data } = await printResume({ id: state.id, type: 'single' });
const blob = b64toBlob(data, 'application/pdf');
openFile(blob);
download(blob, `RxResume-${state.id}.pdf`, 'application/pdf');
setLoadingSingle(false);
};
const handleMultiPageDownload = async () => {
@ -51,7 +45,8 @@ const ExportModal = () => {
const printResume = firebase.functions().httpsCallable('printResume');
const { data } = await printResume({ id: state.id, type: 'multi' });
const blob = b64toBlob(data, 'application/pdf');
openFile(blob);
download(blob, `RxResume-${state.id}.pdf`, 'application/pdf');
setLoadingSingle(false);
};
const handleExportToJson = () => {
@ -61,16 +56,10 @@ const ExportModal = () => {
delete backupObj.name;
delete backupObj.createdAt;
delete backupObj.updatedAt;
const dataStr = `data:text/json;charset=utf-8,${encodeURIComponent(
JSON.stringify(backupObj),
const data = `data:text/json;charset=utf-8,${encodeURIComponent(
JSON.stringify(backupObj, null, '\t'),
)}`;
const dlAnchor = document.getElementById('downloadAnchor');
dlAnchor.setAttribute('href', dataStr);
dlAnchor.setAttribute(
'download',
`RxResume_${state.id}_${Date.now()}.json`,
);
dlAnchor.click();
download(data, `RxResume-${state.id}.json`, 'text/json');
};
return (