refactored debounce for label/button (has label)
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
3f94d7ea0d
commit
cf4f145137
@ -121,7 +121,7 @@ open class ButtonBase: UIButton, Buttonable, Handlerable, ViewProtocol, Resettab
|
|||||||
translatesAutoresizingMaskIntoConstraints = false
|
translatesAutoresizingMaskIntoConstraints = false
|
||||||
accessibilityCustomActions = []
|
accessibilityCustomActions = []
|
||||||
setup()
|
setup()
|
||||||
setupDidChangeEvent()
|
setupDidChangeEvent(true)
|
||||||
updateView()
|
updateView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -94,7 +94,7 @@ public class Label: UILabel, Handlerable, ViewProtocol, Resettable, UserInfoable
|
|||||||
accessibilityCustomActions = []
|
accessibilityCustomActions = []
|
||||||
accessibilityTraits = .staticText
|
accessibilityTraits = .staticText
|
||||||
setup()
|
setup()
|
||||||
setupDidChangeEvent()
|
setupDidChangeEvent(true)
|
||||||
updateView()
|
updateView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,15 +17,22 @@ public protocol Handlerable: AnyObject, Initable, Disabling, Surfaceable {
|
|||||||
|
|
||||||
extension Handlerable {
|
extension Handlerable {
|
||||||
|
|
||||||
public func setupDidChangeEvent() {
|
public func setupDidChangeEvent(_ debounce: Bool = false) {
|
||||||
handlerPublisher().sink { [weak self] _ in
|
handlerPublisher(debounce)
|
||||||
self?.updateView()
|
.sink { [weak self] _ in
|
||||||
|
self?.updateView()
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func handlerPublisher() -> AnyPublisher<Void, Never> {
|
public func handlerPublisher(_ debounce: Bool = false) -> AnyPublisher<Void, Never> {
|
||||||
subject
|
if debounce {
|
||||||
.eraseToAnyPublisher()
|
return subject
|
||||||
|
.debounce(for: .seconds(Constants.StateDebounce), scheduler: RunLoop.main)
|
||||||
|
.eraseToAnyPublisher()
|
||||||
|
} else {
|
||||||
|
return subject
|
||||||
|
.eraseToAnyPublisher()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user