From 73342e40d1389fd42183f0302800d87f6f71ae81 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Wed, 23 Oct 2019 14:51:35 -0400 Subject: [PATCH] code optimization --- MVMCoreUI/Atoms/Buttons/PrimaryButton.m | 6 +++--- MVMCoreUI/FormUIHelpers/FormValidator.swift | 24 +++++++++------------ 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/MVMCoreUI/Atoms/Buttons/PrimaryButton.m b/MVMCoreUI/Atoms/Buttons/PrimaryButton.m index e4f889eb..35395557 100644 --- a/MVMCoreUI/Atoms/Buttons/PrimaryButton.m +++ b/MVMCoreUI/Atoms/Buttons/PrimaryButton.m @@ -21,7 +21,7 @@ @interface PrimaryButton() @property (nonatomic) BOOL validationRequired; -@property (nonatomic, strong) NSArray *requiredFieldsList; +@property (nonatomic, strong) NSArray *requiredGroupsList; @property (nonatomic) BOOL smallButton; @property (assign, nonatomic) BOOL tinyButton; @property (nonatomic) CGFloat sizeForSizing; @@ -670,7 +670,7 @@ - (void)setWithJSON:(NSDictionary *)json delegateObject:(MVMCoreUIDelegateObject *)delegateObject additionalData:(NSDictionary *)additionalData { self.validationRequired = [json boolForKey:@"validationRequired"]; - self.requiredFieldsList = [json array:@"requiredFields"]; + self.requiredGroupsList = [json array:@"requiredGroups"]; [FormValidator setupValidationWithMolecule:self delegate:delegateObject.formValidationProtocol]; self.primaryButtonType = PrimaryButtonTypeCustom; @@ -784,7 +784,7 @@ } - (NSArray *)requiredGroups { - return self.requiredFieldsList; + return self.requiredGroupsList; } - (void)enableField:(BOOL)enable { diff --git a/MVMCoreUI/FormUIHelpers/FormValidator.swift b/MVMCoreUI/FormUIHelpers/FormValidator.swift index d11e4847..7f689dd8 100644 --- a/MVMCoreUI/FormUIHelpers/FormValidator.swift +++ b/MVMCoreUI/FormUIHelpers/FormValidator.swift @@ -49,26 +49,22 @@ import MVMCore public func enableByValidation() { for molecule in enableDisableMolecules { - var requiredFields = molecule.requiredGroups?() ?? [dummyGroupName] - if requiredFields.count == 0 { - requiredFields = [dummyGroupName] + var requiredGroups = molecule.requiredGroups?() ?? [dummyGroupName] + if requiredGroups.count == 0 { + requiredGroups = [dummyGroupName] } - enableWithGroups(requiredFields, molecule) + enableWithGroups(requiredGroups, molecule) } } public func enableWithGroups(_ requiredGroupList: [String], _ enableDisableMolecule: FormValidationEnableDisableProtocol) { - - var groupValidityMap: [String: Bool] = [:] - for molecule in fieldMolecules { - let valid = molecule.isValidField() - let groupName = molecule.formFieldGroupName() ?? dummyGroupName - groupValidityMap[groupName] = valid && (groupValidityMap[groupName] ?? true) - } - + let requiredGroupSet = Set(requiredGroupList) var valid = true - for groupName in requiredGroupList { - valid = valid && groupValidityMap[groupName] ?? false + for molecule in fieldMolecules { + let groupName = molecule.formFieldGroupName() ?? dummyGroupName + if requiredGroupSet.contains(groupName) { + valid = valid && molecule.isValidField() + } } enableDisableMolecule.enableField?(valid) }