UNPKG

design-comuni-plone-theme

Version:
107 lines (99 loc) 3.08 kB
import React from 'react'; import PropTypes from 'prop-types'; import { defineMessages, useIntl } from 'react-intl'; import { Segment, Accordion } from 'semantic-ui-react'; import { FormattedMessage, injectIntl } from 'react-intl'; import { ObjectBrowserWidget } from '@plone/volto/components'; import IconWidget from 'design-comuni-plone-theme/components/ItaliaTheme/manage/Widgets/IconWidget'; import { defaultIconWidgetOptions } from 'design-comuni-plone-theme/helpers/index'; const messages = defineMessages({ linkMoreTitle: { id: 'linkMoreTitle', defaultMessage: 'Titolo per il link ad altro', }, linkMore: { id: 'linkMore', defaultMessage: 'Link ad altro', }, backgroundImage: { id: 'backgroundImage', defaultMessage: 'Immagine di sfondo', }, }); const Sidebar = ({ data, block, onChangeBlock, onChangeSubBlock, selected = 0, setSelected, openObjectBrowser, }) => { const intl = useIntl(); return ( <div className="numbers-block-sidebar-form-container"> <Segment.Group raised> <header className="header pulled"> <h2> <FormattedMessage id="numbers_block" defaultMessage="Blocco numeri" /> </h2> </header> <Accordion className="form"> <Accordion.Content active={true}> <ObjectBrowserWidget id="background" title={intl.formatMessage(messages.backgroundImage)} description="" required={false} widgetOptions={{ pattern_options: { selectableTypes: ['Image'], maximumSelectionSize: 1, }, }} value={data.background ?? []} onChange={(id, value) => onChangeBlock(block, { ...data, [id]: value }) } /> <IconWidget id="icon1" value={data.icon1 ?? ''} defaultOptions={defaultIconWidgetOptions} onChange={(name, value) => { onChangeBlock(block, { ...data, [name]: value }); }} /> <IconWidget id="icon2" value={data.icon2 ?? ''} defaultOptions={defaultIconWidgetOptions} onChange={(name, value) => { onChangeBlock(block, { ...data, [name]: value }); }} /> <IconWidget id="icon3" value={data.icon3 ?? ''} defaultOptions={defaultIconWidgetOptions} onChange={(name, value) => { onChangeBlock(block, { ...data, [name]: value }); }} /> </Accordion.Content> </Accordion> </Segment.Group> </div> ); }; Sidebar.propTypes = { data: PropTypes.objectOf(PropTypes.any), block: PropTypes.string, onChangeBlock: PropTypes.func, selected: PropTypes.any, setSelected: PropTypes.func, }; export default injectIntl(Sidebar);