diff --git a/sites/shared/components/workbench/export.js b/sites/shared/components/workbench/export.js deleted file mode 100644 index 40a25594e01..00000000000 --- a/sites/shared/components/workbench/export.js +++ /dev/null @@ -1,113 +0,0 @@ -import { useState } from 'react' -import { useTranslation } from 'next-i18next' -import fileSaver from 'file-saver' -import yaml from 'js-yaml' -import axios from 'axios' -import Popout from 'shared/components/popout' -import WebLink from 'shared/components/web-link' -import theme from '@freesewing/plugin-theme' - -export const exports = { - exportForPrinting: ['a4', 'a3', 'a2', 'a1', 'a0', 'letter', 'tabloid'], - exportForEditing: ['svg', 'pdf'], - exportAsData: ['json', 'yaml', 'github gist'], -} - -const handleExport = (format, gist, design, app, setLink, setFormat) => { - setLink(false) - setFormat(format) - if (exports.exportAsData.indexOf(format) !== -1) { - if (format === 'json') exportJson(gist) - else if (format === 'yaml') exportYaml(gist) - else if (format === 'github gist') exportGithubGist(gist, app, setLink) - } - else { - gist.embed=false - let svg = '' - try { - svg = new design(gist).use(theme).draft().render() - } catch(err) { - console.log(err) - } - if (format === 'svg') return exportSvg(gist, svg) - app.startLoading() - axios.post('https://tiler.freesewing.org/api', { - svg, - format: 'pdf', - size: format === 'pdf' ? 'full' : format, - url: 'https://freesewing.org', - design: gist.design - }) - .then(res => setLink(res.data.link)) - .catch(err => console.log(err)) - .finally(() => app.stopLoading()) - } -} -const exportJson = gist => { - const blob = new Blob([JSON.stringify(gist, null, 2)], { - type: 'application/json;charset=utf-8' - }) - fileSaver.saveAs(blob, `freesewing-${gist.design || 'gist'}.json`) -} -const exportYaml = gist => { - const blob = new Blob([yaml.dump(gist)], { - type: 'application/x-yaml;charset=utf-8' - }) - fileSaver.saveAs(blob, `freesewing-${gist.design || 'gist'}.yaml`) -} -const exportSvg = (gist, svg) => { - const blob = new Blob([svg], { - type: 'image/svg+xml;charset=utf-8' - }) - fileSaver.saveAs(blob, `freesewing-${gist.design || 'pattern'}.svg`) -} -const exportGithubGist = (data, app, setLink) => { - app.setLoading(true) - axios.post('https://backend.freesewing.org/github/gist', { - design: data.design, - data: yaml.dump(data) - }) - .then(res => setLink('https://gist.github.com/' + res.data.id)) - .catch(err => console.log(err)) - .finally(() => app.stopLoading()) -} - -const ExportDraft = ({ gist, design, app }) => { - - const [link, setLink] = useState(false) - const [format, setFormat] = useState(false) - - const { t } = useTranslation(['app']) - - return ( -
-

{t('export')}

-

{t('exportPattern-txt')}

- {link && ( - - - {format}: - - - - )} -
- {Object.keys(exports).map(type => ( -
-

{t(type)}

- {exports[type].map(format => ( - - ))} -
- ))} -
-
- ) -} - -export default ExportDraft