From b5b48d10615a2311c2cba4f4d02ee911e2f35d06 Mon Sep 17 00:00:00 2001 From: sadakchap Date: Sun, 26 Dec 2021 16:51:42 +0530 Subject: [PATCH 1/2] preserve previous condition value field --- src/components/BrowserFilter/FilterRow.react.js | 2 +- src/components/Filter/Filter.react.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/BrowserFilter/FilterRow.react.js b/src/components/BrowserFilter/FilterRow.react.js index de9416ded6..f10dc18c37 100644 --- a/src/components/BrowserFilter/FilterRow.react.js +++ b/src/components/BrowserFilter/FilterRow.react.js @@ -101,7 +101,7 @@ let FilterRow = ({ color={active ? 'blue' : 'purple'} value={Constraints[currentConstraint].name} options={constraints.map((c) => Constraints[c].name)} - onChange={(c) => onChangeConstraint(constraintLookup[c])} /> + onChange={(c) => onChangeConstraint(constraintLookup[c], compareTo)} /> {compareValue(compareInfo, compareTo, onChangeCompareTo, active, parentContentId)} diff --git a/src/components/Filter/Filter.react.js b/src/components/Filter/Filter.react.js index 0a7d3664da..c08c82d6e0 100644 --- a/src/components/Filter/Filter.react.js +++ b/src/components/Filter/Filter.react.js @@ -21,7 +21,7 @@ function changeField(schema, filters, index, newField) { return filters.set(index, newFilter); } -function changeConstraint(schema, filters, index, newConstraint) { +function changeConstraint(schema, filters, index, newConstraint, prevCompareTo) { let field = filters.get(index).get('field'); let compareType = schema[field].type; if (Object.prototype.hasOwnProperty.call(Filters.Constraints[newConstraint], 'field')) { @@ -30,7 +30,7 @@ function changeConstraint(schema, filters, index, newConstraint) { let newFilter = new Map({ field: field, constraint: newConstraint, - compareTo: Filters.DefaultComparisons[compareType] + compareTo: prevCompareTo ?? Filters.DefaultComparisons[compareType] }) return filters.set(index, newFilter); } @@ -110,8 +110,8 @@ let Filter = ({ schema, filters, renderRow, onChange, blacklist, className }) => onChangeField: newField => { onChange(changeField(schema, filters, i, newField)); }, - onChangeConstraint: newConstraint => { - onChange(changeConstraint(schema, filters, i, newConstraint)); + onChangeConstraint: (newConstraint, prevCompareTo) => { + onChange(changeConstraint(schema, filters, i, newConstraint, prevCompareTo)); }, onChangeCompareTo: newCompare => { onChange(changeCompareTo(schema, filters, i, compareType, newCompare)); From 95eb948be666c98bb486318cc5fb59545265f381 Mon Sep 17 00:00:00 2001 From: sadakchap Date: Sun, 26 Dec 2021 17:51:03 +0530 Subject: [PATCH 2/2] remove compareTo if constraint is not comparable --- src/components/BrowserFilter/BrowserFilter.react.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/components/BrowserFilter/BrowserFilter.react.js b/src/components/BrowserFilter/BrowserFilter.react.js index 0e90cbcedf..3d7fe21496 100644 --- a/src/components/BrowserFilter/BrowserFilter.react.js +++ b/src/components/BrowserFilter/BrowserFilter.react.js @@ -78,6 +78,13 @@ export default class BrowserFilter extends React.Component { if (Filters.Constraints[filter.get('constraint')].hasOwnProperty('field')) { type = Filters.Constraints[filter.get('constraint')].field; }*/ + + // since we are preserving previous compareTo value + // remove compareTo for constraints which are not comparable + let isComparable = Filters.Constraints[filter.get('constraint')].comparable; + if (!isComparable) { + return filter.delete('compareTo') + } return filter; }); this.props.onChange(formatted);