added selectedModelHandler/Handler

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-09-14 11:46:33 -05:00
parent d671492d72
commit 8f63017ce9
4 changed files with 37 additions and 0 deletions

View File

@ -11,6 +11,9 @@ import UIKit
public class CheckboxGroup: CheckboxGroupBase<DefaultCheckboxGroupModel, Checkbox> {
public override func didSelect(_ selectedControl: Checkbox) {
selectedControl.toggle()
if selectedControl.isSelected, hasError{
hasError.toggle()
}
DispatchQueue.main.asyncAfter(deadline: .now() + Constants.ModelStateDebounce) { [weak self] in
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
}
}

View File

@ -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
}
}
}

View File

@ -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
}
}
}

View File

@ -225,4 +225,12 @@ public class RadioSwatchGroupBase<GroupModelType: RadioSwatchGroupModel, ModelHa
open func didSelect(selector: ModelHandlerType) {
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
}
}