fix(list-widget): fix single field usage in list widget (#1395)
This commit is contained in:
committed by
Shawn Erquhart
parent
f58db5fb08
commit
06d3650fac
@ -159,16 +159,17 @@ export default class ListControl extends React.Component {
|
||||
return (fieldName, newValue, newMetadata) => {
|
||||
const { value, metadata, onChange, field } = this.props;
|
||||
const collectionName = field.get('name');
|
||||
const newObjectValue = this.getObjectValue(index).set(fieldName, newValue);
|
||||
const parsedValue =
|
||||
this.getValueType() === valueTypes.SINGLE ? newObjectValue.first() : newObjectValue;
|
||||
const newObjectValue =
|
||||
this.getValueType() === valueTypes.MULTIPLE
|
||||
? this.getObjectValue(index).set(fieldName, newValue)
|
||||
: newValue;
|
||||
const parsedMetadata = {
|
||||
[collectionName]: Object.assign(
|
||||
metadata ? metadata.toJS() : {},
|
||||
newMetadata ? newMetadata[collectionName] : {},
|
||||
),
|
||||
};
|
||||
onChange(value.set(index, parsedValue), parsedMetadata);
|
||||
onChange(value.set(index, newObjectValue), parsedMetadata);
|
||||
};
|
||||
}
|
||||
|
||||
@ -177,9 +178,10 @@ export default class ListControl extends React.Component {
|
||||
const { itemsCollapsed } = this.state;
|
||||
const { value, metadata, onChange, field } = this.props;
|
||||
const collectionName = field.get('name');
|
||||
const parsedMetadata = metadata && {
|
||||
[collectionName]: metadata.removeIn(value.get(index).valueSeq()),
|
||||
};
|
||||
const isSingleField = this.valueType === valueTypes.SINGLE;
|
||||
|
||||
const metadataRemovePath = isSingleField ? value.get(index) : value.get(index).valueSeq();
|
||||
const parsedMetadata = metadata && { [collectionName]: metadata.removeIn(metadataRemovePath) };
|
||||
|
||||
this.setState({ itemsCollapsed: itemsCollapsed.delete(index) });
|
||||
|
||||
|
Reference in New Issue
Block a user