Signed-off-by: Matt Bruce <matt.bruce@verizon.com>

This commit is contained in:
Matt Bruce 2022-08-11 10:56:43 -05:00
parent db018ac32b
commit 036d9462a8

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
import UIKit import UIKit
import Combine
public protocol SelectorGroupModel<SelectorType>: Modelable, FormFieldable { public protocol SelectorGroupModel<SelectorType>: Modelable, FormFieldable {
associatedtype SelectorType: SelectorModel associatedtype SelectorType: SelectorModel
@ -37,7 +37,7 @@ open class SelectorGroup<SelectorType, SelectorGroupType: SelectorGroupModel<Sel
// MARK: - Private Properties // MARK: - Private Properties
//-------------------------------------------------- //--------------------------------------------------
private var mainStackView: UIStackView = { private var mainStackView: UIStackView = {
let stackView = UIStackView() let stackView = UIStackView()
stackView.translatesAutoresizingMaskIntoConstraints = false stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.alignment = .top stackView.alignment = .top
stackView.axis = .vertical stackView.axis = .vertical
@ -109,8 +109,8 @@ open class SelectorGroup<SelectorType, SelectorGroupType: SelectorGroupModel<Sel
self?.didSelect(selected: model) self?.didSelect(selected: model)
}.store(in: &cancellables) }.store(in: &cancellables)
//add model update to the subscribers
newSelectorView.$model.sink { [weak self] model in newSelectorView.$model.sink { [weak self] model in
//should replace
if let cached = self?.getCachedSelector(viewModel: model), newSelectorView.shouldUpdateView(viewModel: cached) { if let cached = self?.getCachedSelector(viewModel: model), newSelectorView.shouldUpdateView(viewModel: cached) {
self?.replace(viewModel: model) self?.replace(viewModel: model)
} }
@ -142,4 +142,5 @@ open class SelectorGroup<SelectorType, SelectorGroupType: SelectorGroupModel<Sel
} }
open func didSelect(selected: SelectorType) { } open func didSelect(selected: SelectorType) { }
} }