import { useEffect, useCallback } from 'react'
import { useTranslation } from 'next-i18next'
import { CutMenu, ns as menuNs } from './menu.mjs'
import { MovablePattern } from 'shared/components/workbench/pattern/movable/index.mjs'
import { IconWrapper } from 'shared/components/icons.mjs'
import {
activeMaterialPath,
useMaterialSettings,
useMaterialDraft,
useMaterialList,
useMaterialLength,
} from './hooks'
export const ns = [...menuNs]
const SheetIcon = (props) => (
)
const MaterialCounter = ({ settings, renderProps }) => {
const materialLength = useMaterialLength(settings.units === 'imperial', renderProps.height)
return (
{materialLength}
)
}
export const CutView = ({
design,
patternConfig,
settings,
ui,
update,
language,
account,
DynamicDocs,
Design,
}) => {
const { t } = useTranslation(['workbench', 'plugin'])
const materialSettings = useMaterialSettings({ ui, units: settings.units })
const { pattern, renderProps } = useMaterialDraft({ settings, ui, Design, materialSettings })
const materialList = useMaterialList(pattern)
const setActiveMaterial = useCallback(
(newMaterial) => {
update.ui(activeMaterialPath, newMaterial)
},
[update]
)
useEffect(() => {
if (!materialList.includes(materialSettings.activeMaterial)) setActiveMaterial(materialList[0])
}, [materialSettings, materialList, setActiveMaterial])
return (
{t('layoutThing', { thing: design }) + ' ' + t('forCutting')}
{materialList.length > 1 ? (
{materialList.map((title) => (
))}
) : null}
)
}