removed intermediate
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
d159075f83
commit
3e8c6a12e4
@ -16,8 +16,7 @@ open class Control: UIControl, Handlerable, ViewProtocol, Resettable, UserInfoab
|
|||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Combine Properties
|
// MARK: - Combine Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
public var delayedSubject = PassthroughSubject<Void, Never>()
|
public var subject = PassthroughSubject<Void, Never>()
|
||||||
public var immediateSubject = PassthroughSubject<Void, Never>()
|
|
||||||
public var updateStrategy: HandlerableUpdateStrategy = .immediate
|
public var updateStrategy: HandlerableUpdateStrategy = .immediate
|
||||||
|
|
||||||
/// Set of Subscribers for any Publishers for this Control
|
/// Set of Subscribers for any Publishers for this Control
|
||||||
|
|||||||
@ -17,8 +17,7 @@ open class View: UIView, Handlerable, ViewProtocol, Resettable, UserInfoable {
|
|||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Combine Properties
|
// MARK: - Combine Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
public var delayedSubject = PassthroughSubject<Void, Never>()
|
public var subject = PassthroughSubject<Void, Never>()
|
||||||
public var immediateSubject = PassthroughSubject<Void, Never>()
|
|
||||||
public var updateStrategy: HandlerableUpdateStrategy = .immediate
|
public var updateStrategy: HandlerableUpdateStrategy = .immediate
|
||||||
|
|
||||||
public var subscribers = Set<AnyCancellable>()
|
public var subscribers = Set<AnyCancellable>()
|
||||||
|
|||||||
@ -28,8 +28,7 @@ open class ButtonBase: UIButton, Buttonable, Handlerable, ViewProtocol, Resettab
|
|||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Combine Properties
|
// MARK: - Combine Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
public var delayedSubject = PassthroughSubject<Void, Never>()
|
public var subject = PassthroughSubject<Void, Never>()
|
||||||
public var immediateSubject = PassthroughSubject<Void, Never>()
|
|
||||||
public var updateStrategy: HandlerableUpdateStrategy = .immediate
|
public var updateStrategy: HandlerableUpdateStrategy = .immediate
|
||||||
public var subscribers = Set<AnyCancellable>()
|
public var subscribers = Set<AnyCancellable>()
|
||||||
public var onClickSubscriber: AnyCancellable? {
|
public var onClickSubscriber: AnyCancellable? {
|
||||||
|
|||||||
@ -16,8 +16,7 @@ open class Label: UILabel, Handlerable, ViewProtocol, Resettable, UserInfoable {
|
|||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Combine Properties
|
// MARK: - Combine Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
public var delayedSubject = PassthroughSubject<Void, Never>()
|
public var subject = PassthroughSubject<Void, Never>()
|
||||||
public var immediateSubject = PassthroughSubject<Void, Never>()
|
|
||||||
public var subscribers = Set<AnyCancellable>()
|
public var subscribers = Set<AnyCancellable>()
|
||||||
public var updateStrategy: HandlerableUpdateStrategy = .immediate
|
public var updateStrategy: HandlerableUpdateStrategy = .immediate
|
||||||
|
|
||||||
|
|||||||
@ -16,8 +16,7 @@ public enum HandlerableUpdateStrategy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public protocol Handlerable: AnyObject, Initable, Disabling, Surfaceable {
|
public protocol Handlerable: AnyObject, Initable, Disabling, Surfaceable {
|
||||||
var delayedSubject: PassthroughSubject<Void, Never> { get set }
|
var subject: PassthroughSubject<Void, Never> { get set }
|
||||||
var immediateSubject: PassthroughSubject<Void, Never> { get set }
|
|
||||||
var subscribers: Set<AnyCancellable> { get set }
|
var subscribers: Set<AnyCancellable> { get set }
|
||||||
var updateStrategy: HandlerableUpdateStrategy { get set }
|
var updateStrategy: HandlerableUpdateStrategy { get set }
|
||||||
func updateView()
|
func updateView()
|
||||||
@ -25,24 +24,19 @@ public protocol Handlerable: AnyObject, Initable, Disabling, Surfaceable {
|
|||||||
|
|
||||||
extension Handlerable {
|
extension Handlerable {
|
||||||
public func setupNeedsUpdateEvent() {
|
public func setupNeedsUpdateEvent() {
|
||||||
delayedSubject
|
subject
|
||||||
.debounce(for: .seconds(0), scheduler: RunLoop.main)
|
.debounce(for: .seconds(0), scheduler: RunLoop.main)
|
||||||
.sink { [weak self] _ in
|
.sink { [weak self] _ in
|
||||||
self?.updateView()
|
self?.updateView()
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
immediateSubject
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.updateView()
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public func setNeedsUpdate() {
|
public func setNeedsUpdate() {
|
||||||
switch updateStrategy {
|
switch updateStrategy {
|
||||||
case .delayed:
|
case .delayed:
|
||||||
delayedSubject.send()
|
subject.send()
|
||||||
case .immediate, .alwaysImmediate:
|
case .immediate, .alwaysImmediate:
|
||||||
immediateSubject.send()
|
updateView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user