[explore-v2] handle field overrides (#1535)

* pass all props to *Field components

* s/fieldSetOverrides/fieldOverrides

* handle field overrides
This commit is contained in:
Alanna Scott
2016-11-03 13:38:17 -07:00
committed by GitHub
parent d9b49ca2bc
commit 88b1f956c7
4 changed files with 43 additions and 17 deletions

View File

@@ -4,14 +4,32 @@ import { fields } from '../stores/store';
const propTypes = {
fieldSets: PropTypes.array.isRequired,
fieldOverrides: PropTypes.object,
};
export default function FieldSetRow({ fieldSets }) {
const defaultProps = {
fieldOverrides: {},
};
function getFieldData(fs, fieldOverrides) {
let fieldData = fields[fs];
if (fieldOverrides.hasOwnProperty(fs)) {
const overrideData = fieldOverrides[fs];
fieldData = Object.assign({}, fieldData, overrideData);
}
return fieldData;
}
export default function FieldSetRow({ fieldSets, fieldOverrides }) {
return (
<ul className="list-unstyled">
{fieldSets.map((fs) => <li key={fs}><FieldSet {...fields[fs]} /></li>)}
{fieldSets.map((fs) => {
const fieldData = getFieldData(fs, fieldOverrides);
return <li key={fs}><FieldSet name={fs} {...fieldData} /></li>;
})}
</ul>
);
}
FieldSetRow.propTypes = propTypes;
FieldSetRow.defaultProps = defaultProps;