2022-02-12 15:23:37 +01:00
|
|
|
import OptionsIcon from 'shared/components/icons/options.js'
|
|
|
|
import { Chevron } from 'shared/components/navigation/primary.js'
|
2022-09-06 15:33:38 +02:00
|
|
|
import OptionGroup from '../design-options/option-group'
|
|
|
|
import Option from './option'
|
2022-02-12 15:23:37 +01:00
|
|
|
import { Ul, Details, TopSummary, TopSumTitle } from 'shared/components/workbench/menu'
|
|
|
|
import { useTranslation } from 'next-i18next'
|
2022-09-06 15:33:38 +02:00
|
|
|
import { optionsMenuStructure } from 'shared/utils.mjs'
|
2022-02-12 15:23:37 +01:00
|
|
|
|
|
|
|
const DesignOptions = props => {
|
2022-02-19 14:21:54 +01:00
|
|
|
const { t } = useTranslation(['app'])
|
2022-09-06 15:33:38 +02:00
|
|
|
const optionsMenu = optionsMenuStructure(props.design.config.options)
|
2022-02-12 15:23:37 +01:00
|
|
|
|
|
|
|
return (
|
|
|
|
<Details open>
|
|
|
|
<TopSummary icon={<OptionsIcon />}>
|
2022-02-19 14:21:54 +01:00
|
|
|
<TopSumTitle>{t('app:designOptions')}</TopSumTitle>
|
2022-02-12 15:23:37 +01:00
|
|
|
<Chevron />
|
|
|
|
</TopSummary>
|
|
|
|
<Ul className="pl-5 list-inside">
|
2022-09-06 15:33:38 +02:00
|
|
|
{Object.entries(optionsMenu).map(([group, options]) => typeof options === "string"
|
|
|
|
? <Option {...props} type={options} option={group} key={group} />
|
|
|
|
: <OptionGroup {...props} group={group} options={options} key={group} Option={Option}/>
|
|
|
|
)}
|
2022-02-12 15:23:37 +01:00
|
|
|
</Ul>
|
|
|
|
</Details>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default DesignOptions
|