update subscriber
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
9292ba8e5a
commit
49b3868acc
@ -13,8 +13,7 @@ import Combine
|
||||
open class Control<ModelType: Modelable>: UIControl, ModelHandlerable, ViewProtocol, Resettable {
|
||||
|
||||
@Published public var model: ModelType
|
||||
private var cancellables = Set<AnyCancellable>()
|
||||
private var shouldUpdate: Bool = false
|
||||
private var cancellable: AnyCancellable?
|
||||
|
||||
open func set(with model: ModelType) {
|
||||
self.model = model
|
||||
@ -63,23 +62,15 @@ open class Control<ModelType: Modelable>: UIControl, ModelHandlerable, ViewProto
|
||||
public func initialSetup() {
|
||||
if !initialSetupPerformed {
|
||||
initialSetupPerformed = true
|
||||
//setup shouldUpdate
|
||||
$model.sink { [weak self] viewModel in
|
||||
guard let self = self else { return }
|
||||
let s = self.shouldUpdateView(viewModel: viewModel)
|
||||
print("shouldUpdate - \(Self.self): \(s)")
|
||||
self.shouldUpdate = s
|
||||
}.store(in: &cancellables)
|
||||
|
||||
//setup viewUpdate
|
||||
$model.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
|
||||
cancellable = $model.filter { viewModel in
|
||||
return self.shouldUpdateView(viewModel: viewModel)
|
||||
|
||||
}.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
|
||||
guard let self = self else { return }
|
||||
if self.shouldUpdate {
|
||||
self.updateView(viewModel: viewModel)
|
||||
self.shouldUpdate = false
|
||||
print("didUpdate - \(Self.self)")
|
||||
}
|
||||
}.store(in: &cancellables)
|
||||
self.updateView(viewModel: viewModel)
|
||||
print("didUpdate - \(Self.self)")
|
||||
}
|
||||
setup()
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,8 +13,7 @@ import Combine
|
||||
open class View<ModelType: Modelable>: UIView, ModelHandlerable, ViewProtocol, Resettable {
|
||||
|
||||
@Published public var model: ModelType
|
||||
private var cancellables = Set<AnyCancellable>()
|
||||
private var shouldUpdate: Bool = false
|
||||
private var cancellable: AnyCancellable?
|
||||
|
||||
open func set(with model: ModelType) {
|
||||
self.model = model
|
||||
@ -62,24 +61,15 @@ open class View<ModelType: Modelable>: UIView, ModelHandlerable, ViewProtocol, R
|
||||
public func initialSetup() {
|
||||
if !initialSetupPerformed {
|
||||
initialSetupPerformed = true
|
||||
//setup shouldUpdate
|
||||
$model.sink { [weak self] viewModel in
|
||||
guard let self = self else { return }
|
||||
let s = self.shouldUpdateView(viewModel: viewModel)
|
||||
print("shouldUpdate - \(Self.self): \(s)")
|
||||
self.shouldUpdate = s
|
||||
}.store(in: &cancellables)
|
||||
|
||||
//setup viewUpdate
|
||||
$model.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
|
||||
cancellable = $model.filter { viewModel in
|
||||
return self.shouldUpdateView(viewModel: viewModel)
|
||||
|
||||
}.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
|
||||
guard let self = self else { return }
|
||||
if self.shouldUpdate {
|
||||
self.updateView(viewModel: viewModel)
|
||||
self.shouldUpdate = false
|
||||
print("didUpdate - \(Self.self)")
|
||||
}
|
||||
}.store(in: &cancellables)
|
||||
|
||||
self.updateView(viewModel: viewModel)
|
||||
print("didUpdate - \(Self.self)")
|
||||
}
|
||||
setup()
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,8 +18,7 @@ open class LabelBase<ModelType: LabelModel>: UILabel, ModelHandlerable, Initable
|
||||
// MARK: - Combine Properties
|
||||
//--------------------------------------------------
|
||||
@Published public var model: ModelType
|
||||
private var cancellables = Set<AnyCancellable>()
|
||||
private var shouldUpdate: Bool = false
|
||||
private var cancellable: AnyCancellable?
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Properties
|
||||
@ -95,23 +94,16 @@ open class LabelBase<ModelType: LabelModel>: UILabel, ModelHandlerable, Initable
|
||||
translatesAutoresizingMaskIntoConstraints = false
|
||||
accessibilityCustomActions = []
|
||||
accessibilityTraits = .staticText
|
||||
|
||||
//setup shouldUpdate
|
||||
$model.sink { [weak self] viewModel in
|
||||
guard let self = self else { return }
|
||||
self.shouldUpdate = self.shouldUpdateView(viewModel: viewModel)
|
||||
print("shouldUpdate - \(Self.self): \(self.shouldUpdate)")
|
||||
}.store(in: &cancellables)
|
||||
|
||||
|
||||
//setup viewUpdate
|
||||
$model.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
|
||||
cancellable = $model.filter { viewModel in
|
||||
return self.shouldUpdateView(viewModel: viewModel)
|
||||
|
||||
}.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
|
||||
guard let self = self else { return }
|
||||
if self.shouldUpdate {
|
||||
self.updateView(viewModel: viewModel)
|
||||
self.shouldUpdate = false
|
||||
print("didUpdate - \(Self.self)")
|
||||
}
|
||||
}.store(in: &cancellables)
|
||||
self.updateView(viewModel: viewModel)
|
||||
print("didUpdate - \(Self.self)")
|
||||
}
|
||||
}
|
||||
|
||||
public func reset() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user