webpack/components/TemplateSyncResult/components/SyncedTemplate/helpers.js in foreman_templates-7.0.7 vs webpack/components/TemplateSyncResult/components/SyncedTemplate/helpers.js in foreman_templates-8.0.0

- old
+ new

@@ -5,12 +5,12 @@ import IconInfoItem from './IconInfoItem'; import EmptyInfoItem from './EmptyInfoItem'; import StringInfoItem from './StringInfoItem'; import LinkInfoItem from './LinkInfoItem'; -export const itemIteratorId = (template, attr) => - `${template.templateFile}-${attr}`; +export const itemIteratorId = (template, ...rest) => + `${template.templateFile}-${rest.join('-')}`; export const additionalInfo = (template, editPath) => { const infoAttrs = [ 'name', 'locked', @@ -70,11 +70,16 @@ return ( <StringInfoItem template={template} attr={attr} key={key} elipsed /> ); case 'name': return ( - <LinkInfoItem template={template} editPath={editPath} attr={attr} /> + <LinkInfoItem + template={template} + editPath={editPath} + attr={attr} + key={key} + /> ); default: return ''; } }); @@ -89,15 +94,20 @@ return <Icon name={iconName} size="sm" type="pf" />; }; export const expandableContent = template => { if (Object.keys(aggregatedMessages(template)).length !== 0) { - const res = Object.keys(aggregatedMessages(template)).map(key => ( - <li key={itemIteratorId(template, key)}> - {formatError(key, aggregatedMessages(template)[key])} - </li> - )); + const msgs = aggregatedMessages(template); + + const res = Object.keys(msgs).map(key => { + const errorMsgs = aggregatedMessages(template)[key]; + return errorMsgs.map((errValue, idx) => ( + <li key={itemIteratorId(template, key, idx)}> + {formatError(key, errValue)} + </li> + )); + }); return <ul>{res}</ul>; } return <span>There were no errors.</span>; }; @@ -118,10 +128,10 @@ return errors; }; const formatError = (key, value) => { const omitKeys = ['base', 'additional', 'info']; - if (omitKeys.reduce((memo, item) => memo || key === item, false)) { + if (omitKeys.filter(item => key === item)) { return value; } return `${key}: ${value}`; };