added selectedModelHandler/Handler
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
d671492d72
commit
8f63017ce9
@ -11,6 +11,9 @@ import UIKit
|
|||||||
public class CheckboxGroup: CheckboxGroupBase<DefaultCheckboxGroupModel, Checkbox> {
|
public class CheckboxGroup: CheckboxGroupBase<DefaultCheckboxGroupModel, Checkbox> {
|
||||||
public override func didSelect(_ selectedControl: Checkbox) {
|
public override func didSelect(_ selectedControl: Checkbox) {
|
||||||
selectedControl.toggle()
|
selectedControl.toggle()
|
||||||
|
if selectedControl.isSelected, hasError{
|
||||||
|
hasError.toggle()
|
||||||
|
}
|
||||||
DispatchQueue.main.asyncAfter(deadline: .now() + Constants.ModelStateDebounce) { [weak self] in
|
DispatchQueue.main.asyncAfter(deadline: .now() + Constants.ModelStateDebounce) { [weak self] in
|
||||||
self?.sendActions(for: .valueChanged)
|
self?.sendActions(for: .valueChanged)
|
||||||
}
|
}
|
||||||
@ -87,5 +90,11 @@ public class CheckboxGroupBase<GroupModelType: CheckboxGroupModel, ModelHandlerT
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var selectedModelHandlers: [ModelHandlerType]? {
|
||||||
|
let selected = selectorViews.filter{ $0.isSelected == true }
|
||||||
|
guard selected.count > 0 else { return nil }
|
||||||
|
return selected
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -95,4 +95,14 @@ public class RadioBoxGroupBase<GroupModelType: RadioBoxGroupModel, ModelHandlerT
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var selectedModelHandler: ModelHandlerType? {
|
||||||
|
if let index = selectorViews.firstIndex(where: { element in
|
||||||
|
return element.isSelected == true
|
||||||
|
}) {
|
||||||
|
return selectorViews[index]
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,4 +98,14 @@ public class RadioButtonGroupBase<GroupModelType: RadioButtonGroupModel, ModelHa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var selectedModelHandler: ModelHandlerType? {
|
||||||
|
if let index = selectorViews.firstIndex(where: { element in
|
||||||
|
return element.isSelected == true
|
||||||
|
}) {
|
||||||
|
return selectorViews[index]
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -225,4 +225,12 @@ public class RadioSwatchGroupBase<GroupModelType: RadioSwatchGroupModel, ModelHa
|
|||||||
open func didSelect(selector: ModelHandlerType) {
|
open func didSelect(selector: ModelHandlerType) {
|
||||||
fatalError("Must override didSelect")
|
fatalError("Must override didSelect")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var selectedModelHandler: ModelHandlerType? {
|
||||||
|
guard let index = model.selectors.firstIndex(where: {$0.selected == true }),
|
||||||
|
let cell = collectionView.cellForItem(at: IndexPath(item: index, section: 0)) as? CollectionViewCell<ModelHandlerType> else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return cell.modelHandler
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user