code review
This commit is contained in:
parent
d0ac49663a
commit
63f02a0c7c
@ -709,21 +709,6 @@
|
||||
[self setEnabledByValidity];
|
||||
}
|
||||
|
||||
- (void)addTextFieldsForValidation:(nonnull MFTextField *)textField {
|
||||
if (self.textFields == nil) {
|
||||
self.textFields = [NSMutableArray array];
|
||||
}
|
||||
if (textField) {
|
||||
[self.textFields addObject:textField];
|
||||
}
|
||||
|
||||
for (MFTextField *field in self.textFields) {
|
||||
field.mfTextFieldDelegate = self;
|
||||
[field setDefaultValidationBlock];
|
||||
}
|
||||
[self setEnabledByValidity];
|
||||
}
|
||||
|
||||
- (void)handleEnablingWithTextFields:(nullable NSArray <MFTextField *>*)textFields {
|
||||
|
||||
if (self.textFields) {
|
||||
@ -758,9 +743,8 @@
|
||||
|
||||
#pragma mark - FormValidationProtocol
|
||||
|
||||
- (void)enableField:(BOOL) enable {
|
||||
|
||||
if (self.validationRequired == NO) {
|
||||
- (void)enableField:(BOOL)enable {
|
||||
if (!self.validationRequired) {
|
||||
self.enabled = YES;
|
||||
} else {
|
||||
self.enabled = enable;
|
||||
|
||||
@ -51,10 +51,9 @@
|
||||
[self.dashLine updateView:size];
|
||||
|
||||
if (self.isMolecule) {
|
||||
[self setVerticalPadding:[MFStyler defaultHorizontalPaddingForApplicationWidth]];
|
||||
|
||||
[self setHorizontalPadding:[MFStyler defaultHorizontalPaddingForSize:size]];
|
||||
} else {
|
||||
[self setVerticalPadding:0];
|
||||
[self setHorizontalPadding:0];
|
||||
}
|
||||
}];
|
||||
}
|
||||
@ -116,18 +115,17 @@
|
||||
return textField;
|
||||
}
|
||||
|
||||
- (void)setWithJSON:(NSDictionary *)json delegate:(nullable id<UITextFieldDelegate, MFTextFieldDelegate>)delegate additionalData:(NSDictionary *)additionalData {
|
||||
|
||||
- (void)setAsMolecule {
|
||||
self.isMolecule = YES;
|
||||
[FormValidator setupValidationWithMolecule:self delegate:(id<FormValidationProtocol>)delegate];
|
||||
[self setWithMap:json bothDelegates:delegate];
|
||||
|
||||
FormValidator *formValidator = [FormValidator getFormValidatorForDelegate:(id<FormValidationProtocol>)delegate];
|
||||
self.mfTextFieldDelegate = formValidator;
|
||||
self.uiTextFieldDelegate = formValidator;
|
||||
}
|
||||
|
||||
- (void)setVerticalPadding:(CGFloat) padding {
|
||||
- (void)setWithJSON:(NSDictionary *)json delegate:(nullable id<UITextFieldDelegate, MFTextFieldDelegate>)delegate additionalData:(NSDictionary *)additionalData {
|
||||
[FormValidator setupValidationWithMolecule:self delegate:(id<FormValidationProtocol>)delegate];
|
||||
FormValidator *formValidator = [FormValidator getFormValidatorForDelegate:(id<FormValidationProtocol>)delegate];
|
||||
[self setWithMap:json bothDelegates:formValidator];
|
||||
}
|
||||
|
||||
- (void)setHorizontalPadding:(CGFloat) padding {
|
||||
self.textContainerLeftPin.constant = padding;
|
||||
self.errorLableLeftPin.constant = padding;
|
||||
self.formLabelLeftPin.constant = padding;
|
||||
@ -568,7 +566,7 @@
|
||||
|
||||
#pragma mark - MVMCoreUIMoleculeViewProtocol
|
||||
|
||||
- (BOOL) isValidField {
|
||||
- (BOOL)isValidField {
|
||||
return self.valid;
|
||||
}
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
// title view for navigation bar, used for custom navigation titles
|
||||
@property (weak, nonatomic) UILabel *titleLabel;
|
||||
|
||||
@property (strong, nonatomic) FormValidator* formValidator;
|
||||
@property (strong, nonatomic) FormValidator *formValidator;
|
||||
|
||||
@end
|
||||
|
||||
@ -254,9 +254,7 @@
|
||||
self.loadObject.pageJSON = page;
|
||||
}
|
||||
|
||||
[self updateUI];
|
||||
// [self newDataBuildScreen];
|
||||
// self.needToUpdateUI = YES;
|
||||
[self updateUI];
|
||||
[self.view setNeedsLayout];
|
||||
[self.view layoutIfNeeded];
|
||||
}];
|
||||
@ -416,6 +414,10 @@
|
||||
// Since we have new data, build stuff for the screen.
|
||||
[self updateUI];
|
||||
|
||||
// Update the UI after the view is loaded.
|
||||
self.needToUpdateUI = YES;
|
||||
self.needToupdateUIOnScreenSizeChanges = YES;
|
||||
|
||||
if (UIAccessibilityIsVoiceOverRunning()) {
|
||||
self.disableAnimations = YES;
|
||||
}
|
||||
@ -428,10 +430,6 @@
|
||||
- (void) updateUI {
|
||||
[self newDataBuildScreen];
|
||||
[self.formValidator enableByValidation];
|
||||
|
||||
// Update the UI after the view is loaded.
|
||||
self.needToUpdateUI = YES;
|
||||
self.needToupdateUIOnScreenSizeChanges = YES;
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
|
||||
@ -10,23 +10,22 @@ import Foundation
|
||||
|
||||
@objc public extension FormValidator {
|
||||
@objc public func addFormParams(requestParameters: MVMCoreRequestParameters) {
|
||||
DispatchQueue.main.sync {
|
||||
requestParameters.add(self.getFormParams())
|
||||
}
|
||||
requestParameters.add(self.getFormParams())
|
||||
}
|
||||
|
||||
@objc public func getFormParams() -> [String: Any] {
|
||||
|
||||
var extraParam: [String: Any] = [:]
|
||||
for molecule in self.molecules {
|
||||
if let formFieldName = molecule.formFieldName,
|
||||
let formFieldValue = molecule.formFieldValue,
|
||||
let fieldName = formFieldName(),
|
||||
let fieldValue = formFieldValue() {
|
||||
|
||||
extraParam[fieldName] = fieldValue
|
||||
MVMCoreDispatchUtility.performSyncBlock(onMainThread: {
|
||||
for molecule in self.molecules {
|
||||
if let formFieldName = molecule.formFieldName,
|
||||
let formFieldValue = molecule.formFieldValue,
|
||||
let fieldName = formFieldName(),
|
||||
let fieldValue = formFieldValue() {
|
||||
|
||||
extraParam[fieldName] = fieldValue
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
return extraParam
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,27 +8,67 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
@objc extension FormValidator: UITextFieldDelegate, UITextViewDelegate, MFTextFieldDelegate{
|
||||
@objc extension FormValidator: UITextFieldDelegate {
|
||||
public func textFieldDidEndEditing(_ textField: UITextField) {
|
||||
enableByValidation()
|
||||
}
|
||||
|
||||
public func dismissFieldInput(_ sender: Any?) {
|
||||
if let delegate = delegate as? MFTextFieldDelegate,
|
||||
let dismissFieldInput = delegate.dismissFieldInput {
|
||||
dismissFieldInput(sender)
|
||||
if let delegate = delegate as? UITextFieldDelegate {
|
||||
delegate.textFieldDidEndEditing?(textField)
|
||||
}
|
||||
}
|
||||
|
||||
public func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
||||
textField.resignFirstResponder()
|
||||
if let delegate = delegate as? UITextFieldDelegate {
|
||||
return delegate.textFieldShouldReturn?(textField) ?? true
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
public func textFieldDidBeginEditing(_ textField: UITextField) {
|
||||
if let delegate = delegate as? UITextFieldDelegate,
|
||||
let textFieldDidBeginEditing = delegate.textFieldDidBeginEditing {
|
||||
textFieldDidBeginEditing(textField)
|
||||
if let delegate = delegate as? UITextFieldDelegate {
|
||||
delegate.textFieldDidBeginEditing?(textField)
|
||||
}
|
||||
}
|
||||
|
||||
public func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
|
||||
if let delegate = delegate as? UITextFieldDelegate {
|
||||
return delegate.textFieldShouldBeginEditing?(textField) ?? true
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
public func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
|
||||
if let delegate = delegate as? UITextFieldDelegate {
|
||||
return delegate.textFieldShouldEndEditing?(textField) ?? true
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
public func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason) {
|
||||
if let delegate = delegate as? UITextFieldDelegate {
|
||||
delegate.textFieldDidEndEditing?(textField, reason: reason)
|
||||
}
|
||||
}
|
||||
|
||||
public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
||||
if let delegate = delegate as? UITextFieldDelegate {
|
||||
return delegate.textField?(textField, shouldChangeCharactersIn: range, replacementString: string) ?? true
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
public func textFieldShouldClear(_ textField: UITextField) -> Bool {
|
||||
if let delegate = delegate as? UITextFieldDelegate {
|
||||
return delegate.textFieldShouldClear?(textField) ?? true
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
@objc extension FormValidator: MFTextFieldDelegate {
|
||||
public func dismissFieldInput(_ sender: Any?) {
|
||||
if let delegate = delegate as? MFTextFieldDelegate {
|
||||
delegate.dismissFieldInput?(sender)
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,11 +76,21 @@ import Foundation
|
||||
DispatchQueue.main.async {
|
||||
self.enableByValidation()
|
||||
}
|
||||
MVMCoreDispatchUtility.performBlock(onMainThread: {
|
||||
if let delegate = self.delegate as? MFTextFieldDelegate {
|
||||
delegate.entryIsValid?(textfield)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
public func entryIsInvalid(_ textfield: MFTextField?) {
|
||||
DispatchQueue.main.async {
|
||||
self.enableByValidation()
|
||||
}
|
||||
MVMCoreDispatchUtility.performBlock(onMainThread: {
|
||||
if let delegate = self.delegate as? MFTextFieldDelegate {
|
||||
delegate.entryIsInvalid?(textfield)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user