diff --git a/assets/js/src/form_editor/blocks/input_styles_settings.jsx b/assets/js/src/form_editor/blocks/input_styles_settings.jsx index 943589f9a6..f70d720b15 100644 --- a/assets/js/src/form_editor/blocks/input_styles_settings.jsx +++ b/assets/js/src/form_editor/blocks/input_styles_settings.jsx @@ -1,10 +1,13 @@ import React, { useState } from 'react'; import MailPoet from 'mailpoet'; import { + ColorIndicator, + ColorPalette, Panel, PanelBody, ToggleControl, } from '@wordpress/components'; +import { useSelect } from '@wordpress/data'; import { partial } from 'underscore'; import PropTypes from 'prop-types'; @@ -14,6 +17,16 @@ const InputStylesSettings = ({ }) => { const [localStyles, setStyles] = useState(styles); + const { settingsColors } = useSelect( + (select) => { + const { getSettings } = select('core/block-editor'); + return { + settingsColors: getSettings().colors, + }; + }, + [] + ); + const updateStyles = (property, value) => { const updated = { ...localStyles }; updated[property] = value; @@ -35,6 +48,24 @@ const InputStylesSettings = ({ /> {!localStyles.inheritFromTheme ? ( <> +
+

+ {MailPoet.I18n.t('formSettingsStylesBackgroundColor')} + { + styles.backgroundColor !== undefined + && ( + + ) + } +

+ +
{ return mappedStyles; } mappedStyles.bold = styles.bold ? '1' : '0'; + if (has(styles, 'backgroundColor') && styles.backgroundColor) { + mappedStyles.background_color = styles.backgroundColor; + } return mappedStyles; }; diff --git a/assets/js/src/form_editor/store/form_body_to_blocks.jsx b/assets/js/src/form_editor/store/form_body_to_blocks.jsx index f7dc6847fc..62d8cc10b4 100644 --- a/assets/js/src/form_editor/store/form_body_to_blocks.jsx +++ b/assets/js/src/form_editor/store/form_body_to_blocks.jsx @@ -39,6 +39,9 @@ const mapBlockStyles = (styles) => { } mappedStyles.inheritFromTheme = false; mappedStyles.bold = styles.bold === '1'; + if (has(styles, 'background_color') && styles.background_color) { + mappedStyles.backgroundColor = styles.background_color; + } return mappedStyles; }; diff --git a/tests/javascript/form_editor/store/blocks_to_form_body.spec.js b/tests/javascript/form_editor/store/blocks_to_form_body.spec.js index 17f3f64592..ca1957fd0d 100644 --- a/tests/javascript/form_editor/store/blocks_to_form_body.spec.js +++ b/tests/javascript/form_editor/store/blocks_to_form_body.spec.js @@ -83,6 +83,7 @@ describe('Blocks to Form Body', () => { fullWidth: false, inheritFromTheme: false, bold: true, + backgroundColor: '#aaaaaa', }, }, }; @@ -96,6 +97,7 @@ describe('Blocks to Form Body', () => { expect(inputWithCustomStyles.styles).to.eql({ full_width: '0', bold: '1', + background_color: '#aaaaaa', }); }); diff --git a/tests/javascript/form_editor/store/form_body_to_blocks.spec.js b/tests/javascript/form_editor/store/form_body_to_blocks.spec.js index 1a8f00e308..99d6f29e93 100644 --- a/tests/javascript/form_editor/store/form_body_to_blocks.spec.js +++ b/tests/javascript/form_editor/store/form_body_to_blocks.spec.js @@ -132,6 +132,7 @@ describe('Form Body To Blocks', () => { const customTextStyles = { full_width: '0', bold: '1', + background_color: '#ffffff', }; const map = formBodyToBlocksFactory(colorDefinitions, [customFieldText]); @@ -147,6 +148,7 @@ describe('Form Body To Blocks', () => { fullWidth: false, inheritFromTheme: false, bold: true, + backgroundColor: '#ffffff', }); });