From cb3bb9250daed481a7550714a4ba8501e97662f1 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 11 Aug 2022 14:16:58 -0500 Subject: [PATCH] added subscribers and renamed from cancellables Signed-off-by: Matt Bruce --- VDS/Classes/Control.swift | 5 ++--- VDS/Classes/View.swift | 4 ++-- VDS/Components/Label/Label.swift | 4 ++-- VDS/Components/Selector/SelectorGroupBase.swift | 4 ++-- VDS/Protocols/ModelHandlerable.swift | 4 +++- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/VDS/Classes/Control.swift b/VDS/Classes/Control.swift index ecb9738e..39682be0 100644 --- a/VDS/Classes/Control.swift +++ b/VDS/Classes/Control.swift @@ -18,8 +18,7 @@ open class Control: UIControl, ModelHandlerPublishable, Vi @Published public var model: ModelType = ModelType() public var modelPublished: Published { _model } public var modelPublisher: Published.Publisher { $model } - - public var cancellables = Set() + public var subscribers = Set() //-------------------------------------------------- // MARK: - Properties @@ -71,7 +70,7 @@ open class Control: UIControl, ModelHandlerPublishable, Vi guard let self = self else { return } self.updateView(viewModel: viewModel) - }.store(in: &cancellables) + }.store(in: &subscribers) setup() } } diff --git a/VDS/Classes/View.swift b/VDS/Classes/View.swift index 9d1eaa2c..d80935d5 100644 --- a/VDS/Classes/View.swift +++ b/VDS/Classes/View.swift @@ -18,7 +18,7 @@ open class View: UIView, ModelHandlerPublishable, ViewProt @Published public var model: ModelType = ModelType() public var modelPublished: Published { _model } public var modelPublisher: Published.Publisher { $model } - public var cancellables = Set() + public var subscribers = Set() //-------------------------------------------------- // MARK: - Properties @@ -70,7 +70,7 @@ open class View: UIView, ModelHandlerPublishable, ViewProt guard let self = self else { return } self.updateView(viewModel: viewModel) - }.store(in: &cancellables) + }.store(in: &subscribers) setup() } } diff --git a/VDS/Components/Label/Label.swift b/VDS/Components/Label/Label.swift index 0661b681..fb29a2b8 100644 --- a/VDS/Components/Label/Label.swift +++ b/VDS/Components/Label/Label.swift @@ -20,7 +20,7 @@ open class LabelBase: UILabel, ModelHandlerPublishable, V @Published public var model: ModelType = ModelType() public var modelPublished: Published { _model } public var modelPublisher: Published.Publisher { $model } - public var cancellables = Set() + public var subscribers = Set() //-------------------------------------------------- // MARK: - Properties @@ -104,7 +104,7 @@ open class LabelBase: UILabel, ModelHandlerPublishable, V guard let self = self else { return } self.updateView(viewModel: viewModel) - }.store(in: &cancellables) + }.store(in: &subscribers) setup() } diff --git a/VDS/Components/Selector/SelectorGroupBase.swift b/VDS/Components/Selector/SelectorGroupBase.swift index bffdda16..66f465a9 100644 --- a/VDS/Components/Selector/SelectorGroupBase.swift +++ b/VDS/Components/Selector/SelectorGroupBase.swift @@ -93,14 +93,14 @@ open class SelectorGroupBase 0 else { return } self?.didSelect(selected: model) - }.store(in: &cancellables) + }.store(in: &subscribers) //add model update to the subscribers newSelectorView.$model.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] model in if let cached = self?.getCachedSelector(viewModel: model), newSelectorView.shouldUpdateView(viewModel: cached) { self?.replace(viewModel: model) } - }.store(in: &cancellables) + }.store(in: &subscribers) self.selectorViews.append(newSelectorView) mainStackView.addArrangedSubview(newSelectorView) diff --git a/VDS/Protocols/ModelHandlerable.swift b/VDS/Protocols/ModelHandlerable.swift index 2a80258f..215f2454 100644 --- a/VDS/Protocols/ModelHandlerable.swift +++ b/VDS/Protocols/ModelHandlerable.swift @@ -6,7 +6,8 @@ // import Foundation - +import Combine + public protocol ModelHandlerable: AnyObject { associatedtype ModelType: Modelable var model: ModelType { get set } @@ -30,4 +31,5 @@ extension ModelHandlerable { public protocol ModelHandlerPublishable: ModelHandlerable { var modelPublished: Published { get } var modelPublisher: Published.Publisher { get } + var subscribers: Set { get set } }