Merge branch 'develop' into feature/heart
This commit is contained in:
commit
8534042311
@ -92,10 +92,9 @@ import UIKit
|
|||||||
}
|
}
|
||||||
|
|
||||||
func performDropdownAction() {
|
func performDropdownAction() {
|
||||||
if let actionModel = baseDropdownEntryFieldModel?.action, let actionMap = actionModel.toJSON() {
|
if let baseDropdownEntryFieldModel = baseDropdownEntryFieldModel, let actionModel = baseDropdownEntryFieldModel.action, let actionMap = actionModel.toJSON() {
|
||||||
var additionalData = self.additionalData ?? [:]
|
let additionalDataWithSource = additionalData.dictionaryAdding(key: KeySourceModel, value: baseDropdownEntryFieldModel)
|
||||||
additionalData[KeySourceModel] = baseDropdownEntryFieldModel
|
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalDataWithSource, delegateObject: delegateObject)
|
||||||
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegateObject: delegateObject)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -137,13 +137,11 @@ open class RadioBox: Control, MFButtonProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@objc open func selectBox() {
|
@objc open func selectBox() {
|
||||||
guard isEnabled else { return }
|
guard isEnabled, !isSelected else { return }
|
||||||
isSelected = true
|
isSelected = true
|
||||||
radioBoxModel?.selected = isSelected
|
radioBoxModel?.selected = isSelected
|
||||||
if let actionModel = radioBoxModel?.action {
|
if let radioBoxModel = radioBoxModel, let actionModel = radioBoxModel.action {
|
||||||
var additionalData = self.additionalData ?? [:]
|
Button.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData, sourceModel: radioBoxModel)
|
||||||
additionalData[KeySourceModel] = radioBoxModel
|
|
||||||
Button.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData)
|
|
||||||
}
|
}
|
||||||
layer.setNeedsDisplay()
|
layer.setNeedsDisplay()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -95,15 +95,14 @@ import UIKit
|
|||||||
if !isEnabled {
|
if !isEnabled {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
let wasPreviouslySelected = isSelected
|
||||||
if let radioButtonModel = radioButtonSelectionHelper {
|
if let radioButtonModel = radioButtonSelectionHelper {
|
||||||
radioButtonModel.selected(self)
|
radioButtonModel.selected(self)
|
||||||
} else {
|
} else {
|
||||||
isSelected = !isSelected
|
isSelected = !isSelected
|
||||||
}
|
}
|
||||||
if let actionModel = radioModel?.action, isSelected {
|
if let radioModel = radioModel, let actionModel = radioModel.action, isSelected, !wasPreviouslySelected {
|
||||||
var additionalData = self.additionalData ?? [:]
|
Button.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData, sourceModel: radioModel)
|
||||||
additionalData[KeySourceModel] = radioModel
|
|
||||||
Button.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData)
|
|
||||||
}
|
}
|
||||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||||
setNeedsDisplay()
|
setNeedsDisplay()
|
||||||
|
|||||||
@ -119,13 +119,11 @@ open class RadioSwatch: Control, MFButtonProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@objc open func selectSwatch() {
|
@objc open func selectSwatch() {
|
||||||
guard isEnabled else { return }
|
guard isEnabled, !isSelected else { return }
|
||||||
isSelected = true
|
isSelected = true
|
||||||
radioSwatchModel?.selected = isSelected
|
radioSwatchModel?.selected = isSelected
|
||||||
if let actionModel = radioSwatchModel?.action {
|
if let radioSwatchModel = radioSwatchModel, let actionModel = radioSwatchModel.action {
|
||||||
var additionalData = self.additionalData ?? [:]
|
Button.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData, sourceModel: radioSwatchModel)
|
||||||
additionalData[KeySourceModel] = radioSwatchModel
|
|
||||||
Button.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData)
|
|
||||||
}
|
}
|
||||||
layer.setNeedsDisplay()
|
layer.setNeedsDisplay()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -394,20 +394,19 @@ public typealias ActionBlockConfirmation = () -> (Bool)
|
|||||||
|
|
||||||
let actionMap = model.action?.toJSON()
|
let actionMap = model.action?.toJSON()
|
||||||
let alternateActionMap = model.alternateAction?.toJSON()
|
let alternateActionMap = model.alternateAction?.toJSON()
|
||||||
|
let additionalDataWithSource = additionalData.dictionaryAdding(key: KeySourceModel, value: model)
|
||||||
if actionMap != nil || alternateActionMap != nil {
|
if actionMap != nil || alternateActionMap != nil {
|
||||||
var additionalDatatoUpdate = additionalData ?? [:]
|
|
||||||
additionalDatatoUpdate[KeySourceModel] = model
|
|
||||||
didToggleAction = { [weak self] in
|
didToggleAction = { [weak self] in
|
||||||
guard let self = self else { return }
|
guard let self = self else { return }
|
||||||
if self.isOn {
|
if self.isOn {
|
||||||
if actionMap != nil {
|
if actionMap != nil {
|
||||||
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalDatatoUpdate, delegateObject: delegateObject)
|
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalDataWithSource, delegateObject: delegateObject)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if alternateActionMap != nil {
|
if alternateActionMap != nil {
|
||||||
MVMCoreActionHandler.shared()?.handleAction(with: alternateActionMap, additionalData: additionalDatatoUpdate, delegateObject: delegateObject)
|
MVMCoreActionHandler.shared()?.handleAction(with: alternateActionMap, additionalData: additionalDataWithSource, delegateObject: delegateObject)
|
||||||
} else if actionMap != nil {
|
} else if actionMap != nil {
|
||||||
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalDatatoUpdate, delegateObject: delegateObject)
|
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalDataWithSource, delegateObject: delegateObject)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -82,11 +82,16 @@ public typealias ButtonAction = (Button) -> ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class func performButtonAction(with model: ActionModelProtocol, button: MFButtonProtocol, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {
|
open class func performButtonAction(with model: ActionModelProtocol, button: MFButtonProtocol, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?, sourceModel: MoleculeModelProtocol? = nil) {
|
||||||
if let data = try? model.encode(using: JSONEncoder()),
|
if let data = try? model.encode(using: JSONEncoder()),
|
||||||
let actionMap = try? JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.init()) as? [AnyHashable: Any],
|
let actionMap = try? JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.init()) as? [AnyHashable: Any],
|
||||||
delegateObject?.buttonDelegate?.button?(button, shouldPerformActionWithMap: actionMap, additionalData: additionalData) ?? true {
|
delegateObject?.buttonDelegate?.button?(button, shouldPerformActionWithMap: actionMap, additionalData: additionalData) ?? true {
|
||||||
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegateObject: delegateObject)
|
if let sourceModel = sourceModel {
|
||||||
|
let additionalDataWithSource = additionalData.dictionaryAdding(key: KeySourceModel, value: sourceModel)
|
||||||
|
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalDataWithSource, delegateObject: delegateObject)
|
||||||
|
} else {
|
||||||
|
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegateObject: delegateObject)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user