Skip to content
Snippets Groups Projects
Unverified Commit d9f29d49 authored by Paul Rosenzweig's avatar Paul Rosenzweig Committed by GitHub
Browse files

fetch field values for multiple field_ids (#10341)

parent c5c2da5b
No related branches found
No related tags found
No related merge requests found
......@@ -84,7 +84,8 @@ export default class ParameterValueWidget extends Component {
className: "",
};
getField() {
// this method assumes the parameter is associated with only one field
getSingleField() {
const { parameter, metadata } = this.props;
return parameter.field_id != null
? metadata.fields[parameter.field_id]
......@@ -95,7 +96,7 @@ export default class ParameterValueWidget extends Component {
const { parameter, values } = this.props;
if (DATE_WIDGETS[parameter.type]) {
return DATE_WIDGETS[parameter.type];
} else if (this.getField()) {
} else if (this.getSingleField()) {
return ParameterFieldWidget;
} else if (values && values.length > 0) {
return CategoryWidget;
......@@ -114,19 +115,20 @@ export default class ParameterValueWidget extends Component {
}
}
fieldIds({ parameter: { field_id, field_ids = [] } }) {
return field_id ? [field_id] : field_ids;
}
componentWillReceiveProps(nextProps) {
if (
nextProps.parameter.field_id != null &&
nextProps.parameter.field_id !== this.props.parameter.field_id
) {
if (!_.isEqual(this.fieldIds(this.props), this.fieldIds(nextProps))) {
this.updateFieldValues(nextProps);
}
}
updateFieldValues(props) {
if (props.parameter.field_id != null) {
props.fetchField(props.parameter.field_id);
props.fetchFieldValues(props.parameter.field_id);
for (const id of this.fieldIds(props)) {
props.fetchField(id);
props.fetchFieldValues(id);
}
}
......@@ -229,7 +231,7 @@ export default class ParameterValueWidget extends Component {
placeholder={placeholder}
value={value}
values={values}
field={this.getField()}
field={this.getSingleField()}
setValue={setValue}
isEditing={isEditing}
commitImmediately={commitImmediately}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment