import {Accordion, AccordionItem} from '@common/ui/accordion/accordion'; import {Trans} from '@common/i18n/trans'; import { appearanceState, useAppearanceStore, } from '@common/admin/appearance/appearance-store'; import {useFieldArray} from 'react-hook-form'; import {FormTextField} from '@common/ui/forms/input-field/text-field/text-field'; import {FormImageSelector} from '@common/ui/images/image-selector'; import {Button} from '@common/ui/buttons/button'; import {AddIcon} from '@common/icons/material/Add'; import {useState} from 'react'; export function LandingPageSectionPrimaryFeatures() { const {fields, remove, append} = useFieldArray({ name: 'settings.homepage.appearance.primaryFeatures', }); const [expandedValues, setExpandedValues] = useState([0]); return (
{ setExpandedValues(values as number[]); if (values.length) { appearanceState().preview.setHighlight( `[data-testid="primary-root-${values[0]}"]` ); } }} > {fields.map((field, index) => { return ( } >
); })}
); } interface FeatureFormProps { index: number; } function FeatureForm({index}: FeatureFormProps) { const defaultImage = useAppearanceStore( s => s.defaults?.settings.homepage?.appearance?.primaryFeatures?.[index]?.image ); return ( <> } defaultValue={defaultImage} diskPrefix="homepage" /> } className="mb-20" onFocus={() => { appearanceState().preview.setHighlight( `[data-testid="primary-title-${index}"]` ); }} /> } className="mb-20" inputElementType="textarea" rows={4} onFocus={() => { appearanceState().preview.setHighlight( `[data-testid="primary-subtitle-${index}"]` ); }} /> ); }