Prevent duplicate api calls on text filtering

This commit is contained in:
Michael Shamoon
2022-06-13 15:35:00 -07:00
parent 72ee904e67
commit ffb903841b
3 changed files with 58 additions and 33 deletions

View File

@@ -25,6 +25,34 @@ export function isFullTextFilterRule(filterRules: FilterRule[]): boolean {
)
}
export function filterRulesDiffer(
filterRulesA: FilterRule[],
filterRulesB: FilterRule[]
): boolean {
let modified = false
if (filterRulesA.length != filterRulesB.length) {
modified = true
} else {
modified = filterRulesA.some((rule) => {
return (
filterRulesB.find(
(fri) => fri.rule_type == rule.rule_type && fri.value == rule.value
) == undefined
)
})
if (!modified) {
// only check other direction if we havent already determined is modified
modified = filterRulesB.some((rule) => {
filterRulesA.find(
(fr) => fr.rule_type == rule.rule_type && fr.value == rule.value
) == undefined
})
}
}
return modified
}
export interface FilterRule {
rule_type: number
value: string