import {Accordion, AccordionItem} from '@common/ui/accordion/accordion'; import {Trans} from '@common/i18n/trans'; import {appearanceState} 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 {LandingPageContent} from '@app/landing/landing-page-content'; import {Button} from '@common/ui/buttons/button'; import {AddIcon} from '@common/icons/material/Add'; import {useState} from 'react'; import {FormImageSelector} from '@common/ui/images/image-selector'; export function LandingPageSecondaryFeatures() { const {fields, remove, append} = useFieldArray({ name: 'settings.homepage.appearance.secondaryFeatures', }); const [expandedValues, setExpandedValues] = useState([0]); return (
{ setExpandedValues(values as number[]); if (values.length) { appearanceState().preview.setHighlight( `[data-testid="secondary-root-${values[0]}"]` ); } }} > {fields.map((field, index) => { return ( } >
); })}
); } interface FeatureFormProps { index: number; } function FeatureForm({index}: FeatureFormProps) { return ( <> } defaultValue={getDefaultImage(index)} diskPrefix="homepage" /> } className="mb-20" onFocus={() => { appearanceState().preview.setHighlight( `[data-testid="secondary-title-${index}"]` ); }} /> } className="mb-20" inputElementType="textarea" rows={4} onFocus={() => { appearanceState().preview.setHighlight( `[data-testid="secondary-subtitle-${index}"]` ); }} /> } className="mb-20" inputElementType="textarea" rows={4} onFocus={() => { appearanceState().preview.setHighlight( `[data-testid="secondary-description-${index}"]` ); }} /> ); } function getDefaultImage(index: number): string | undefined { return ( appearanceState().defaults?.settings.homepage .appearance as LandingPageContent ).secondaryFeatures[index]?.image; }