CE-798 - A fix for last change here, where if criteria came from outside this component, then changing operator wouldn't take - another check of isOpen in some of the reset code.

This commit is contained in:
2024-02-16 10:09:42 -06:00
parent 63479ba282
commit b137b3346d

View File

@ -190,14 +190,24 @@ export default function QuickFilter({tableMetaData, fullFieldName, fieldMetaData
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (criteriaParamIsCriteria(criteriaParam) && JSON.stringify(criteriaParam) !== JSON.stringify(criteria)) if (criteriaParamIsCriteria(criteriaParam) && JSON.stringify(criteriaParam) !== JSON.stringify(criteria))
{ {
//////////////////////////////////////////////////////////////////////////////////////////////////////// if(isOpen)
// copy the criteriaParam to a new object in here - so changes won't apply until user closes the menu // {
//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
const newCriteria = Object.assign({}, criteriaParam) as QFilterCriteriaWithId; // this was firing too-often for case where: there was a criteria originally //
setCriteria(newCriteria); ////////////////////////////////////////////////////////////////////////////////
const operatorOption = operatorOptions.filter(o => o.value == newCriteria.operator)[0]; console.log("Not handling outside change (A), because dropdown is-open");
setOperatorSelectedValue(operatorOption); }
setOperatorInputValue(operatorOption.label); else
{
////////////////////////////////////////////////////////////////////////////////////////////////////////
// copy the criteriaParam to a new object in here - so changes won't apply until user closes the menu //
////////////////////////////////////////////////////////////////////////////////////////////////////////
const newCriteria = Object.assign({}, criteriaParam) as QFilterCriteriaWithId;
setCriteria(newCriteria);
const operatorOption = operatorOptions.filter(o => o.value == newCriteria.operator)[0];
setOperatorSelectedValue(operatorOption);
setOperatorInputValue(operatorOption.label);
}
} }
/******************************************************************************* /*******************************************************************************
@ -218,6 +228,7 @@ export default function QuickFilter({tableMetaData, fullFieldName, fieldMetaData
// this was firing too-often for case where: there was no criteria originally, // // this was firing too-often for case where: there was no criteria originally, //
// so, by adding this is-open check, we eliminated those. // // so, by adding this is-open check, we eliminated those. //
////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////
console.log("Not handling outside change (B), because dropdown is-open");
return (false); return (false);
} }
@ -312,6 +323,9 @@ export default function QuickFilter({tableMetaData, fullFieldName, fieldMetaData
setOperatorSelectedValue(null); setOperatorSelectedValue(null);
setOperatorInputValue(""); setOperatorInputValue("");
} }
setCriteria(criteria);
forceUpdate();
}; };
/******************************************************************************* /*******************************************************************************