From 43bb9cde800dba574ddc8225255b3bb0bae7f844 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Thu, 5 Aug 2021 17:16:51 -0400 Subject: [PATCH] fix --- .../FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift | 6 +++++- .../Rules/Rules/RuleAnyValueChangedModel.swift | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift index 3a9b3871..67f1d754 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift @@ -50,7 +50,11 @@ public class RuleAnyRequiredModel: RulesProtocol { if fieldValidity { return (fieldValidity, previousValidity) - } + } + } + + // if the rule breaks all fields should be set to false + fields.forEach { (formKey) in previousValidity[formKey] = false } return (valid: false, fieldValidity: previousValidity) diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift index 2a982e45..cd8e2eda 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift @@ -32,7 +32,7 @@ public class RuleAnyValueChangedModel: RulesProtocol { for formKey in fields { guard let formField = fieldMolecules[formKey] else { continue } var fieldValidity = isValid(formField) - // If past rule is invalid forr a field, the current rule should not flip the validity of a field + // If past rule is invalid for a field, the current rule should not flip the validity of a field if let validity = previousFieldValidity[formKey], !validity, fieldValidity { fieldValidity = false } @@ -40,6 +40,10 @@ public class RuleAnyValueChangedModel: RulesProtocol { if fieldValidity { return (true, previousValidity) } + } + + // if the rule breaks all fields should be set to false + fields.forEach { (formKey) in previousValidity[formKey] = false } return (valid: false, fieldValidity: previousValidity)