Add mapping of form API data format styles to block attributes

[MAILPOET-2599]
This commit is contained in:
Rostislav Wolny
2020-03-03 17:59:47 +01:00
committed by Veljko V
parent e6ceb97b18
commit 026a35fffb
2 changed files with 60 additions and 4 deletions

View File

@@ -25,6 +25,23 @@ export const customFieldValuesToBlockValues = (values) => values.map((value) =>
return mappedValue;
});
const mapBlockStyles = (styles) => {
if (!styles) {
return backwardCompatibleBlockStyles;
}
const mappedStyles = {
fullWidth: styles.full_width === '1',
};
// Detect if styles inherit from theme by checking if bold param is present
if (!has(styles, 'bold')) {
mappedStyles.inheritFromTheme = true;
return mappedStyles;
}
mappedStyles.inheritFromTheme = false;
mappedStyles.bold = styles.bold === '1';
return mappedStyles;
};
const mapCustomField = (item, customFields, mappedCommonProperties) => {
const customField = customFields.find((cf) => cf.id === parseInt(item.id, 10));
if (!customField) return null;
@@ -67,7 +84,7 @@ const mapCustomField = (item, customFields, mappedCommonProperties) => {
}
if (customField.type === 'text' || customField.type === 'textarea') {
mapped.attributes.styles = backwardCompatibleBlockStyles;
mapped.attributes.styles = mapBlockStyles(item.styles);
}
return mapped;
};
@@ -169,7 +186,7 @@ export const formBodyToBlocksFactory = (colorDefinitions, customFields = []) =>
name: 'mailpoet-form/email-input',
attributes: {
...mapped.attributes,
styles: backwardCompatibleBlockStyles,
styles: mapBlockStyles(item.styles),
},
};
case 'heading':
@@ -197,7 +214,7 @@ export const formBodyToBlocksFactory = (colorDefinitions, customFields = []) =>
name: 'mailpoet-form/first-name-input',
attributes: {
...mapped.attributes,
styles: backwardCompatibleBlockStyles,
styles: mapBlockStyles(item.styles),
},
};
case 'last_name':
@@ -206,7 +223,7 @@ export const formBodyToBlocksFactory = (colorDefinitions, customFields = []) =>
name: 'mailpoet-form/last-name-input',
attributes: {
...mapped.attributes,
styles: backwardCompatibleBlockStyles,
styles: mapBlockStyles(item.styles),
},
};
case 'segments':