refactored updateView stuff into method

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-13 09:57:02 -05:00
parent 843739e913
commit 1d30735948
4 changed files with 15 additions and 29 deletions

View File

@ -62,15 +62,7 @@ open class Control<ModelType: Modelable>: UIControl, ModelHandlerable, ViewProto
public func initialSetup() {
if !initialSetupPerformed {
initialSetupPerformed = true
//setup viewUpdate
modelPublisher.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 }
self.updateView(viewModel: viewModel)
}.store(in: &subscribers)
setupUpdateView()
setup()
}
}

View File

@ -62,15 +62,7 @@ open class View<ModelType: Modelable>: UIView, ModelHandlerable, ViewProtocol, R
public func initialSetup() {
if !initialSetupPerformed {
initialSetupPerformed = true
//setup viewUpdate
modelPublisher.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 }
self.updateView(viewModel: viewModel)
}.store(in: &subscribers)
setupUpdateView()
setup()
}
}

View File

@ -95,17 +95,7 @@ open class LabelBase<ModelType: LabelModel>: UILabel, ModelHandlerable, ViewProt
translatesAutoresizingMaskIntoConstraints = false
accessibilityCustomActions = []
accessibilityTraits = .staticText
//setup viewUpdate
modelPublisher.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 }
self.updateView(viewModel: viewModel)
}.store(in: &subscribers)
setupUpdateView()
setup()
}

View File

@ -29,4 +29,16 @@ extension ModelHandlerable {
self.model = model
}
}
public func setupUpdateView() {
modelPublisher.filter { [weak self] viewModel in
guard let self else { return false}
return self.shouldUpdateView(viewModel: viewModel)
}.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
guard let self else { return }
self.updateView(viewModel: viewModel)
}.store(in: &subscribers)
}
}