diff --git a/MVMCoreUI/FormUIHelpers/FormValidator.swift b/MVMCoreUI/FormUIHelpers/FormValidator.swift index 090202c0..bed97391 100644 --- a/MVMCoreUI/FormUIHelpers/FormValidator.swift +++ b/MVMCoreUI/FormUIHelpers/FormValidator.swift @@ -99,10 +99,10 @@ import MVMCore var previousValidity: [String: Bool] = [:] for rule in group.rules { let tuple = rule.validate(fields, previousValidity) - let temp = tuple.0 - let returnedValidity = tuple.1 + let isValidRule = tuple.valid + let returnedValidity = tuple.fieldValidity previousValidity = previousValidity.merging(returnedValidity) { (_, new) in new } - valid = valid && temp + valid = valid && isValidRule } // Notify the group watchers of validity. diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift index 2addbf90..0df84c4a 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift @@ -36,7 +36,7 @@ public class RuleAnyRequiredModel: RulesProtocol { return false } - public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) { + public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) { var previousValidity: [String: Bool] = [:] for formKey in fields { @@ -44,7 +44,7 @@ public class RuleAnyRequiredModel: RulesProtocol { var fieldValidity = isValid(formField) // If past rule is invalid forr a field, the current rule should not flip the validity of a field - if let validity = previousFieldValidiity[formKey], !validity, fieldValidity { + if let validity = previousFieldValidity[formKey], !validity, fieldValidity { fieldValidity = false } @@ -53,6 +53,6 @@ public class RuleAnyRequiredModel: RulesProtocol { } previousValidity[formKey] = false } - return (false, previousValidity) + return (valid: false, fieldValidity: previousValidity) } } diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift index d7413419..2a982e45 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift @@ -27,13 +27,13 @@ public class RuleAnyValueChangedModel: RulesProtocol { return formField.baseValue != formField.formFieldValue() } - public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) { + public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) { var previousValidity: [String: Bool] = [:] 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 let validity = previousFieldValidiity[formKey], !validity, fieldValidity { + if let validity = previousFieldValidity[formKey], !validity, fieldValidity { fieldValidity = false } @@ -41,7 +41,7 @@ public class RuleAnyValueChangedModel: RulesProtocol { return (true, previousValidity) } previousValidity[formKey] = false - } - return (false, previousValidity) + } + return (valid: false, fieldValidity: previousValidity) } } diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsIgnoreCaseModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsIgnoreCaseModel.swift index 4979adf2..ee165b9a 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsIgnoreCaseModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsIgnoreCaseModel.swift @@ -27,7 +27,7 @@ public class RuleEqualsIgnoreCaseModel: RulesProtocol { return false } - public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) { + public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) { var valid = false var compareText: String? @@ -46,7 +46,7 @@ public class RuleEqualsIgnoreCaseModel: RulesProtocol { var fieldValidity = valid // If past rule is invalid forr a field, the current rule should not flip the validity of a field - if let validity = previousFieldValidiity[formKey], !validity, fieldValidity { + if let validity = previousFieldValidity[formKey], !validity, fieldValidity { fieldValidity = false } @@ -60,7 +60,6 @@ public class RuleEqualsIgnoreCaseModel: RulesProtocol { previousValidity[formKey] = valid (formField as? FormRuleWatcherFieldProtocol)?.setValidity(valid, rule: self) } - - return (valid, previousValidity) + return (valid: valid, fieldValidity: previousValidity) } } diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift index 7795ab39..7a8c25e4 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift @@ -27,7 +27,7 @@ public class RuleEqualsModel: RulesProtocol { return false } - public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) { + public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) { var valid = true var compareValue: AnyHashable? var previousValidity: [String: Bool] = [:] @@ -48,13 +48,12 @@ public class RuleEqualsModel: RulesProtocol { } else { var fieldValidity = valid // If past rule is invalid forr a field, the current rule should not flip the validity of a field - if let validity = previousFieldValidiity[formKey], !validity, fieldValidity { + if let validity = previousFieldValidity[formKey], !validity, fieldValidity { fieldValidity = false } (formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: self) } } - - return (valid, previousValidity) + return (valid: valid, fieldValidity: previousValidity) } } diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift index c48fd111..db8614ac 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift @@ -26,7 +26,7 @@ public protocol RulesProtocol: ModelProtocol { func isValid(_ formField: FormFieldProtocol) -> Bool // Validates the rule and returns the result. - func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) + func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) } public extension RulesProtocol { @@ -38,21 +38,21 @@ public extension RulesProtocol { static var categoryName: String { "\(RulesProtocol.self)" } // Individual rule can override the function to validate based on the rule type. - func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) { + func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) { var valid = true var previousValidity: [String: Bool] = [:] 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 let validity = previousFieldValidiity[formKey], !validity, fieldValidity { + var fieldValidity = isValid(formField) + // 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 } (formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: self) valid = valid && fieldValidity previousValidity[formKey] = fieldValidity } - return (valid, previousValidity) + return (valid: valid, fieldValidity: previousValidity) } }