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 {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 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 as LandingPageContent) ?.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}"]` ); }} /> ); }