1
0
Fork 0
freesewing/sites/shared/components/workbench/layout/print/index.js

67 lines
1.6 KiB
JavaScript
Raw Normal View History

2022-08-14 16:50:16 -05:00
import { useEffect } from 'react'
2022-02-20 18:46:21 +01:00
import { useTranslation } from 'next-i18next'
import Settings from './settings'
import Draft from '../draft/index'
import {pagesPlugin} from './plugin'
import {handleExport, defaultPdfSettings} from 'shared/components/workbench/exporting'
2022-02-20 18:46:21 +01:00
const PrintLayout = props => {
2022-08-14 16:50:16 -05:00
// disable xray
useEffect(() => {
if (props.gist?._state?.xray?.enabled) props.updateGist(
['_state', 'xray', 'enabled'],
false
)
}, [])
2022-02-20 18:46:21 +01:00
const { t } = useTranslation(['workbench'])
const draft = props.draft
2022-08-17 13:11:22 -05:00
2022-08-14 16:50:16 -05:00
// add the pages plugin to the draft
2022-08-17 13:11:22 -05:00
const layoutSettings = props.gist?._state?.layout?.forPrinting?.page || defaultPdfSettings
draft.use(pagesPlugin(
2022-08-17 13:11:22 -05:00
layoutSettings, true
2022-02-20 18:46:21 +01:00
))
2022-08-14 16:50:16 -05:00
2022-02-20 18:46:21 +01:00
let patternProps
try {
2022-08-14 16:50:16 -05:00
// draft the pattern
2022-02-20 18:46:21 +01:00
draft.draft()
patternProps = draft.getRenderProps()
} catch(err) {
2022-03-06 18:54:30 +01:00
console.log(err, props.gist)
2022-02-20 18:46:21 +01:00
}
const bgProps = { fill: "url(#page)" }
const exportIt = () => {
handleExport('pdf', props.gist, props.design, t)
}
2022-02-20 18:46:21 +01:00
return (
<div>
<h2 className="capitalize">
{
2022-06-17 12:02:09 +02:00
t('layoutThing', { thing: props.design.config.name })
2022-02-20 18:46:21 +01:00
+ ': '
+ t('forPrinting')
}
</h2>
<div className="m-4">
<Settings {...{...props, exportIt}} draft={draft}/>
2022-02-20 18:46:21 +01:00
</div>
<Draft
draft={draft}
gist={props.gist}
2022-02-25 08:30:03 +01:00
updateGist={props.updateGist}
2022-02-20 18:46:21 +01:00
patternProps={patternProps}
bgProps={bgProps}
2022-06-28 02:02:51 -05:00
gistReady={props.gistReady}
layoutPart="pages"
2022-02-20 18:46:21 +01:00
/>
</div>
)
}
export default PrintLayout