Skip to content

Commit 11258b3

Browse files
Use RefreshControl primaryActionTriggered event (#28)
1 parent 514cfac commit 11258b3

File tree

2 files changed

+2
-20
lines changed

2 files changed

+2
-20
lines changed

Sources/CombineUI/UIKit/Controls/RefreshControl.swift

+1-4
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ extension UIRefreshControl {
2727
@preconcurrency
2828
@MainActor
2929
public func refreshPublisher() -> AnyPublisher<Void, Never> {
30-
publisher(for: .valueChanged)
31-
.compactMap(bindable)
32-
.map(\.isRefreshing)
33-
.filter { $0 }
30+
publisher(for: .primaryActionTriggered)
3431
.replaceOutput(with: Void())
3532
.eraseToAnyPublisher()
3633
}

Tests/CombineUITests/UIKit/ControlsTests/RefreshControlTests.swift

+1-16
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,15 @@ final class RefreshControlTests: XCTestCase {
1616

1717
private final class TestRefreshControl: UIRefreshControl {
1818

19-
override var isRefreshing: Bool {
20-
_isRefreshing
21-
}
22-
23-
// swiftlint:disable:next redundant_type_annotation
24-
private var _isRefreshing: Bool = false
25-
2619
private(set) var targets: [ObjectIdentifier: ControlTarget] = [:]
2720

28-
override func beginRefreshing() {
29-
_isRefreshing = true
30-
}
31-
32-
override func endRefreshing() {
33-
_isRefreshing = false
34-
}
35-
3621
func invoke(_ isRefreshing: Bool) {
3722
if isRefreshing {
3823
beginRefreshing()
24+
targets.values.forEach { $0.primaryActionTriggered() }
3925
} else {
4026
endRefreshing()
4127
}
42-
targets.values.forEach { $0.valueChanged() }
4328
}
4429

4530
override func addTarget(_ target: Any?, action: Selector, for controlEvents: UIControl.Event) {

0 commit comments

Comments
 (0)