diff --git a/package.json b/package.json index c8a4871..4cebc88 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eeacms/volto-accordion-block", - "version": "3.6.0", + "version": "4.0.0", "description": "volto-accordion-block: Volto accordion block", "main": "src/index.js", "author": "European Environment Agency: IDM2 A-Team", diff --git a/src/components/index.js b/src/components/index.js index 6e9c353..b8e3843 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -1,4 +1,5 @@ export AccordionLayoutSchema from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/LayoutSchema'; +export { AccordionStylingSchema } from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/Schema'; export AccordionBlockEdit from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/Edit'; export AccordionBlockView from '@eeacms/volto-accordion-block/components/manage/Blocks/Accordion/View'; export PanelsWidget from '@eeacms/volto-accordion-block/components/manage/Widgets/PanelsWidget'; diff --git a/src/components/manage/Blocks/Accordion/AccordionEdit.jsx b/src/components/manage/Blocks/Accordion/AccordionEdit.jsx index 0339b14..67dde5f 100644 --- a/src/components/manage/Blocks/Accordion/AccordionEdit.jsx +++ b/src/components/manage/Blocks/Accordion/AccordionEdit.jsx @@ -47,7 +47,7 @@ export default (props) => { }, [data.collapsed]); return ( - + { * @returns {Object} defaultValues */ const setInitialData = () => { - const accordionSchema = applySchemaEnhancer(accordionBlockSchema({ intl })); + const accordionSchema = applySchemaEnhancer(AccordionBlockSchema({ intl })); const defaultValues = Object.keys(accordionSchema.properties).reduce( (accumulator, currentVal) => { return accordionSchema.properties[currentVal].default @@ -259,7 +259,7 @@ const Edit = (props) => { )} {!data?.readOnlySettings && ( { onChangeBlock(block, { diff --git a/src/components/manage/Blocks/Accordion/Schema.js b/src/components/manage/Blocks/Accordion/Schema.js index 3123793..6a9e627 100644 --- a/src/components/manage/Blocks/Accordion/Schema.js +++ b/src/components/manage/Blocks/Accordion/Schema.js @@ -5,9 +5,9 @@ const messages = defineMessages({ id: 'Accordion', defaultMessage: 'Accordion', }, - Style: { - id: 'Style', - defaultMessage: 'Style', + Options: { + id: 'Options', + defaultMessage: 'Options', }, Title: { id: 'Title', @@ -25,10 +25,6 @@ const messages = defineMessages({ id: 'Accordion Title size', defaultMessage: 'Accordion Title size', }, - theme: { - id: 'Theme', - defaultMessage: 'Theme', - }, right_arrows: { id: 'Title Icon on the right', defaultMessage: 'Title Icon on the right', @@ -45,6 +41,26 @@ const messages = defineMessages({ id: 'Allow multiple panels open at a time', defaultMessage: 'Allow multiple panels open at a time', }, + Theme: { + id: 'Theme', + defaultMessage: 'Theme', + }, + ThemeHelp: { + id: 'Accordion theme', + defaultMessage: 'Accordion theme', + }, + ThemePrimary: { + id: 'Primary', + defaultMessage: 'Primary', + }, + ThemeSecondary: { + id: 'Secondary', + defaultMessage: 'Secondary', + }, + ThemeTertiary: { + id: 'Tertiary', + defaultMessage: 'Tertiary', + }, }); export const AccordionSchema = { @@ -64,7 +80,7 @@ export const AccordionSchema = { required: [], }; -export const accordionBlockSchema = ({ intl }) => ({ +export const AccordionBlockSchema = ({ intl }) => ({ title: 'Accordion block', fieldsets: [ { @@ -73,12 +89,11 @@ export const accordionBlockSchema = ({ intl }) => ({ fields: ['data'], }, { - id: 'style', - title: intl.formatMessage(messages.Style), + id: 'options', + title: intl.formatMessage(messages.Options), fields: [ 'title', 'title_size', - 'theme', 'right_arrows', 'collapsed', 'non_exclusive', @@ -109,18 +124,6 @@ export const accordionBlockSchema = ({ intl }) => ({ ['h6', 'Heading 6'], ], }, - theme: { - title: intl.formatMessage(messages.theme), - type: 'string', - factory: 'Choice', - choices: [ - ['default', 'Default'], - ['primary', 'Primary'], - ['secondary', 'Secondary'], - ['tertiary', 'Tertiary'], - ], - default: 'default', - }, right_arrows: { title: intl.formatMessage(messages.right_arrows), type: 'boolean', @@ -140,3 +143,27 @@ export const accordionBlockSchema = ({ intl }) => ({ }, required: ['title'], }); + +export const AccordionStylingSchema = ({ intl }) => ({ + title: intl.formatMessage(messages.Accordion), + block: 'accordion', + fieldsets: [ + { + id: 'default', + title: 'Default', + fields: ['theme'], + }, + ], + properties: { + theme: { + title: intl.formatMessage(messages.Theme), + description: intl.formatMessage(messages.ThemeHelp), + choices: [ + ['primary', intl.formatMessage(messages.ThemePrimary)], + ['secondary', intl.formatMessage(messages.ThemeSecondary)], + ['tertiary', intl.formatMessage(messages.ThemeTertiary)], + ], + }, + }, + required: [], +}); diff --git a/src/components/manage/Blocks/Accordion/View.jsx b/src/components/manage/Blocks/Accordion/View.jsx index 5680152..75e2215 100644 --- a/src/components/manage/Blocks/Accordion/View.jsx +++ b/src/components/manage/Blocks/Accordion/View.jsx @@ -55,7 +55,7 @@ const View = (props) => { styled key={id} exclusive={!data.exclusive} - className={data.theme} + className={data.styles?.theme} > { blockHasOwnFocusManagement: true, sidebarTab: 1, schema: extendedSchema(config), + stylesSchema: AccordionStylingSchema, + enableStyling: true, security: { addPermission: [], view: [],