import type { BlockEditProps } from '@plone/types'; import { Icon, SidebarPortal, UniversalLink } from '@plone/volto/components'; import { BlockDataForm } from '@plone/volto/components/manage/Form'; import EditItem from '@redturtle/volto-blocks/components/blocks/IconsAndText/EditItem'; import type { IconsAndTextData } from '@redturtle/volto-blocks/components/blocks/IconsAndText/schema'; import styles from '@redturtle/volto-blocks/components/blocks/IconsAndText/styles.module.scss'; import blockIcon from '@redturtle/volto-blocks/icons/icons_and_text.svg'; import { TextEditorWidget, useHandleDetachedBlockFocus, } from '@redturtle/volto-slate-extras'; import cx from 'classnames'; import React, { useEffect } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import { v4 as uuid } from 'uuid'; import config from '@plone/registry'; type IconsAndTextEditProps = BlockEditProps & { data: IconsAndTextData; }; export default function Edit(props: IconsAndTextEditProps) { const { data, selected, block, onChangeBlock, blocksConfig, blocksErrors } = props; const intl = useIntl(); const column_number = data.column_number ? parseInt(data.column_number) : 3; const { selectedField, setSelectedField } = useHandleDetachedBlockFocus( props, 'title', ); useEffect(() => { if (!data?.columns || data?.columns?.length === 0) { onChangeBlock(block, { ...data, columns: [ { '@id': uuid(), dividerPosition: 'before_title', iconSize: 's' }, { '@id': uuid(), dividerPosition: 'before_title', iconSize: 's' }, { '@id': uuid(), dividerPosition: 'before_title', iconSize: 's' }, ], }); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [block]); const schema = blocksConfig[data['@type']].blockSchema({ data, intl, }); if (__SERVER__) { return
; } const Container = config.getComponent('Container').component || 'div'; return ( <>