code optimization

This commit is contained in:
Suresh, Kamlesh 2019-10-23 14:51:35 -04:00
parent d398a45054
commit 73342e40d1
2 changed files with 13 additions and 17 deletions

View File

@ -21,7 +21,7 @@
@interface PrimaryButton() <FormValidationEnableDisableProtocol> @interface PrimaryButton() <FormValidationEnableDisableProtocol>
@property (nonatomic) BOOL validationRequired; @property (nonatomic) BOOL validationRequired;
@property (nonatomic, strong) NSArray *requiredFieldsList; @property (nonatomic, strong) NSArray *requiredGroupsList;
@property (nonatomic) BOOL smallButton; @property (nonatomic) BOOL smallButton;
@property (assign, nonatomic) BOOL tinyButton; @property (assign, nonatomic) BOOL tinyButton;
@property (nonatomic) CGFloat sizeForSizing; @property (nonatomic) CGFloat sizeForSizing;
@ -670,7 +670,7 @@
- (void)setWithJSON:(NSDictionary *)json delegateObject:(MVMCoreUIDelegateObject *)delegateObject additionalData:(NSDictionary *)additionalData { - (void)setWithJSON:(NSDictionary *)json delegateObject:(MVMCoreUIDelegateObject *)delegateObject additionalData:(NSDictionary *)additionalData {
self.validationRequired = [json boolForKey:@"validationRequired"]; self.validationRequired = [json boolForKey:@"validationRequired"];
self.requiredFieldsList = [json array:@"requiredFields"]; self.requiredGroupsList = [json array:@"requiredGroups"];
[FormValidator setupValidationWithMolecule:self delegate:delegateObject.formValidationProtocol]; [FormValidator setupValidationWithMolecule:self delegate:delegateObject.formValidationProtocol];
self.primaryButtonType = PrimaryButtonTypeCustom; self.primaryButtonType = PrimaryButtonTypeCustom;
@ -784,7 +784,7 @@
} }
- (NSArray<NSString *> *)requiredGroups { - (NSArray<NSString *> *)requiredGroups {
return self.requiredFieldsList; return self.requiredGroupsList;
} }
- (void)enableField:(BOOL)enable { - (void)enableField:(BOOL)enable {

View File

@ -49,26 +49,22 @@ import MVMCore
public func enableByValidation() { public func enableByValidation() {
for molecule in enableDisableMolecules { for molecule in enableDisableMolecules {
var requiredFields = molecule.requiredGroups?() ?? [dummyGroupName] var requiredGroups = molecule.requiredGroups?() ?? [dummyGroupName]
if requiredFields.count == 0 { if requiredGroups.count == 0 {
requiredFields = [dummyGroupName] requiredGroups = [dummyGroupName]
} }
enableWithGroups(requiredFields, molecule) enableWithGroups(requiredGroups, molecule)
} }
} }
public func enableWithGroups(_ requiredGroupList: [String], _ enableDisableMolecule: FormValidationEnableDisableProtocol) { public func enableWithGroups(_ requiredGroupList: [String], _ enableDisableMolecule: FormValidationEnableDisableProtocol) {
let requiredGroupSet = Set(requiredGroupList)
var groupValidityMap: [String: Bool] = [:]
for molecule in fieldMolecules {
let valid = molecule.isValidField()
let groupName = molecule.formFieldGroupName() ?? dummyGroupName
groupValidityMap[groupName] = valid && (groupValidityMap[groupName] ?? true)
}
var valid = true var valid = true
for groupName in requiredGroupList { for molecule in fieldMolecules {
valid = valid && groupValidityMap[groupName] ?? false let groupName = molecule.formFieldGroupName() ?? dummyGroupName
if requiredGroupSet.contains(groupName) {
valid = valid && molecule.isValidField()
}
} }
enableDisableMolecule.enableField?(valid) enableDisableMolecule.enableField?(valid)
} }