import config from '@plone/registry'; import type { ArrayElement } from '@plone/types'; import { UniversalLink } from '@plone/volto/components'; import { flattenToAppURL } from '@plone/volto/helpers'; import type { IconsAndTextData } from '@redturtle/volto-blocks/components/blocks/IconsAndText/schema'; import styles from '@redturtle/volto-blocks/components/blocks/IconsAndText/styles.module.scss'; import { TextEditorWidget } from '@redturtle/volto-slate-extras'; import cx from 'classnames'; import { defineMessages, useIntl } from 'react-intl'; type Props = { data: ArrayElement; focusOn: string; setFocusOn: Function; onChange: (id: string, field: string, value: unknown) => void; selected: boolean; }; export default function EditItem({ data, focusOn, setFocusOn, onChange, selected, }: Props) { const intl = useIntl(); const icon = data.iconImage; const Image = config.getComponent('Image').component; return (
{icon && (
)} {data.headerTextPosition && (
setFocusOn('headerText' + data['@id'])} onChangeBlock={(id: string, value: { headerText: string }) => { onChange(id, 'headerText', value.headerText); }} showToolbar={false} placeholder={intl.formatMessage(messages.textPlaceholder)} />
)}
setFocusOn('title' + data['@id'])} onChangeBlock={(id: string, value: { title: string }) => { onChange(id, 'title', value.title); }} showToolbar={false} placeholder={intl.formatMessage(messages.title)} /> setFocusOn('text' + data['@id'])} onChangeBlock={(id: string, value: { text: string }) => { onChange(id, 'text', value.text); }} placeholder={intl.formatMessage(messages.text)} /> {data.href_title && data.href?.length > 0 && (
) => { e.preventDefault(); }} > {data.href_title}
)}
); } const messages = defineMessages({ title: { id: 'Title', defaultMessage: 'Title...', }, text: { id: 'Text', defaultMessage: 'Type Text...', }, textPlaceholder: { id: 'Text placeholder', defaultMessage: 'Type header text...', }, });