Add mapping of form API data format styles to block attributes
[MAILPOET-2599]
This commit is contained in:
committed by
Veljko V
parent
e6ceb97b18
commit
026a35fffb
@@ -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':
|
||||
|
Reference in New Issue
Block a user