diff --git a/VDS/Classes/Control.swift b/VDS/Classes/Control.swift index dafce1f7..bf222320 100644 --- a/VDS/Classes/Control.swift +++ b/VDS/Classes/Control.swift @@ -16,8 +16,7 @@ open class Control: UIControl, Handlerable, ViewProtocol, Resettable, UserInfoab //-------------------------------------------------- // MARK: - Combine Properties //-------------------------------------------------- - public var delayedSubject = PassthroughSubject() - public var immediateSubject = PassthroughSubject() + public var subject = PassthroughSubject() public var updateStrategy: HandlerableUpdateStrategy = .immediate /// Set of Subscribers for any Publishers for this Control diff --git a/VDS/Classes/View.swift b/VDS/Classes/View.swift index 7ce4adcb..8d0580ba 100644 --- a/VDS/Classes/View.swift +++ b/VDS/Classes/View.swift @@ -17,8 +17,7 @@ open class View: UIView, Handlerable, ViewProtocol, Resettable, UserInfoable { //-------------------------------------------------- // MARK: - Combine Properties //-------------------------------------------------- - public var delayedSubject = PassthroughSubject() - public var immediateSubject = PassthroughSubject() + public var subject = PassthroughSubject() public var updateStrategy: HandlerableUpdateStrategy = .immediate public var subscribers = Set() diff --git a/VDS/Components/Buttons/Button/ButtonBase.swift b/VDS/Components/Buttons/Button/ButtonBase.swift index c6c78fa5..af62cc5d 100644 --- a/VDS/Components/Buttons/Button/ButtonBase.swift +++ b/VDS/Components/Buttons/Button/ButtonBase.swift @@ -28,8 +28,7 @@ open class ButtonBase: UIButton, Buttonable, Handlerable, ViewProtocol, Resettab //-------------------------------------------------- // MARK: - Combine Properties //-------------------------------------------------- - public var delayedSubject = PassthroughSubject() - public var immediateSubject = PassthroughSubject() + public var subject = PassthroughSubject() public var updateStrategy: HandlerableUpdateStrategy = .immediate public var subscribers = Set() public var onClickSubscriber: AnyCancellable? { diff --git a/VDS/Components/Label/Label.swift b/VDS/Components/Label/Label.swift index f4f76b6c..66fd7efe 100644 --- a/VDS/Components/Label/Label.swift +++ b/VDS/Components/Label/Label.swift @@ -16,8 +16,7 @@ open class Label: UILabel, Handlerable, ViewProtocol, Resettable, UserInfoable { //-------------------------------------------------- // MARK: - Combine Properties //-------------------------------------------------- - public var delayedSubject = PassthroughSubject() - public var immediateSubject = PassthroughSubject() + public var subject = PassthroughSubject() public var subscribers = Set() public var updateStrategy: HandlerableUpdateStrategy = .immediate diff --git a/VDS/Protocols/Handlerable.swift b/VDS/Protocols/Handlerable.swift index cacb904a..79c08668 100644 --- a/VDS/Protocols/Handlerable.swift +++ b/VDS/Protocols/Handlerable.swift @@ -16,8 +16,7 @@ public enum HandlerableUpdateStrategy { } public protocol Handlerable: AnyObject, Initable, Disabling, Surfaceable { - var delayedSubject: PassthroughSubject { get set } - var immediateSubject: PassthroughSubject { get set } + var subject: PassthroughSubject { get set } var subscribers: Set { get set } var updateStrategy: HandlerableUpdateStrategy { get set } func updateView() @@ -25,24 +24,19 @@ public protocol Handlerable: AnyObject, Initable, Disabling, Surfaceable { extension Handlerable { public func setupNeedsUpdateEvent() { - delayedSubject + subject .debounce(for: .seconds(0), scheduler: RunLoop.main) .sink { [weak self] _ in self?.updateView() }.store(in: &subscribers) - - immediateSubject - .sink { [weak self] _ in - self?.updateView() - }.store(in: &subscribers) } public func setNeedsUpdate() { switch updateStrategy { case .delayed: - delayedSubject.send() + subject.send() case .immediate, .alwaysImmediate: - immediateSubject.send() + updateView() } }