import { useContext } from 'react' import { useTranslation } from 'next-i18next' import { pagesPlugin } from 'shared/plugins/plugin-layout-part.mjs' import { handleExport, ns as exportNs, } from 'shared/components/workbench/exporting/export-handler.mjs' import get from 'lodash.get' import { MovablePattern } from 'shared/components/workbench/pattern/movable/index.mjs' import { PrintMenu, ns as menuNs } from './menu.mjs' import { defaultPrintSettings, printSettingsPath } from './config.mjs' import { PrintIcon, RightIcon } from 'shared/components/icons.mjs' import { LoadingContext } from 'shared/context/loading-context.mjs' import { useToast } from 'shared/hooks/use-toast.mjs' import { PatternWithMenu, ns as wrapperNs } from '../pattern-with-menu.mjs' import { V3Wip } from 'shared/components/v3-wip.mjs' const viewNs = ['print', ...exportNs] export const ns = [...viewNs, ...menuNs, ...wrapperNs] const PageCounter = ({ pattern }) => { const pages = pattern.setStores[0].get('pages', {}) const { cols, rows, count } = pages return (
{count} | {cols} |
{rows}
) } export const PrintView = ({ design, pattern, patternConfig, settings, setSettings, ui, update, language, account, DynamicDocs, Design, }) => { const { t } = useTranslation(ns) const loading = useContext(LoadingContext) const toast = useToast() const defaultSettings = defaultPrintSettings(settings.units) // add the pages plugin to the draft const pageSettings = { ...defaultSettings, ...get(ui, printSettingsPath, {}), } pattern.use(pagesPlugin(pageSettings)) let renderProps try { // draft the pattern pattern.draft() renderProps = pattern.getRenderProps() } catch (err) { console.log(err) } const exportIt = () => { handleExport({ format: pageSettings.size, settings, design, t, Design, ui, startLoading: loading.startLoading, stopLoading: loading.stopLoading, onComplete: () => {}, onError: (err) => toast.error(err.message), }) } return (

{t('layoutThing', { thing: design }) + ' ' + t('forPrinting')}

), pattern: ( ), menu: ( <> ), }} /> ) }