1
0
Fork 0
freesewing/sites/lab/pages/account/patterns/lily/edit.mjs

87 lines
2.6 KiB
JavaScript
Raw Normal View History

/*
* This page is auto-generated. Do not edit it by hand.
*/
import { Lily } from 'designs/lily/src/index.mjs'
// Dependencies
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
import { nsMerge, getSearchParam } from 'shared/utils.mjs'
// Hooks
import { useState, useEffect, useContext } from 'react'
import { useTranslation } from 'next-i18next'
import { useBackend } from 'shared/hooks/use-backend.mjs'
// Context
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
// Components
import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
import { Loading } from 'shared/components/spinner.mjs'
// Translation namespaces used on this page
const ns = nsMerge('lily', wbNs, pageNs)
const EditDesignComponent = ({ id, design, Design, settings }) => (
<Workbench preload={{ settings }} saveAs={{ pattern: id }} {...{ design, Design }} />
)
const EditLilyPage = ({ page }) => {
const { setLoadingStatus } = useContext(LoadingStatusContext)
const backend = useBackend()
const { t } = useTranslation(ns)
const [pattern, setPattern] = useState(false)
useEffect(() => {
const getPattern = async () => {
setLoadingStatus([true, t('backendLoadingStarted')])
let result
try {
result = await backend.getPattern(id)
if (result.success) {
setPattern(result.data.pattern)
setLoadingStatus([true, 'backendLoadingCompleted', true, true])
} else setLoadingStatus([true, 'backendError', true, false])
} catch (err) {
console.log(err)
setLoadingStatus([true, 'backendError', true, false])
}
}
const id = getSearchParam('id')
if (id) getPattern()
}, [backend, setLoadingStatus, t])
return (
// prettier-ignore
<PageWrapper {...page} title="Lily" layout={pattern ? WorkbenchLayout : false} header={null}>
{pattern ? (
<EditDesignComponent
id={pattern.id}
settings={pattern.settings}
design="lily"
Design={Lily}
/>
) : (
<div>
<h1>{t('account:oneMomentPLease')}</h1>
<Loading />
</div>
)}
</PageWrapper>
)
}
export default EditLilyPage
export async function getStaticProps({ locale }) {
return {
props: {
...(await serverSideTranslations(locale, ns)),
page: {
locale,
path: ['account', 'patterns', 'lily'],
title: 'Lily',
},
},
}
}