Remove CurrentValueSubject as protocol requirement (#807)

* Add CurrentValuePublisher

* Refactor to use CurrentValuePublisher

* Add comment
This commit is contained in:
Alfonso Grillo
2023-04-18 12:52:08 +02:00
committed by GitHub
parent 44def2277f
commit 9fe69acd20
7 changed files with 78 additions and 17 deletions
@@ -17,7 +17,7 @@
import Combine
struct MockRoomTimelineProvider: RoomTimelineProviderProtocol {
var itemsPublisher = CurrentValueSubject<[TimelineItemProxy], Never>([])
var itemsPublisher = CurrentValuePublisher<[TimelineItemProxy], Never>([])
private var itemProxies = [TimelineItemProxy]()
}
@@ -31,11 +31,15 @@ class RoomTimelineProvider: RoomTimelineProviderProtocol {
private var cancellables = Set<AnyCancellable>()
private let serialDispatchQueue: DispatchQueue
let itemsPublisher = CurrentValueSubject<[TimelineItemProxy], Never>([])
private let itemsSubject = CurrentValueSubject<[TimelineItemProxy], Never>([])
var itemsPublisher: CurrentValuePublisher<[TimelineItemProxy], Never> {
itemsSubject.asCurrentValuePublisher()
}
private var itemProxies: [TimelineItemProxy] {
didSet {
itemsPublisher.send(itemProxies)
itemsSubject.send(itemProxies)
}
}
@@ -18,5 +18,5 @@ import Combine
import Foundation
protocol RoomTimelineProviderProtocol {
var itemsPublisher: CurrentValueSubject<[TimelineItemProxy], Never> { get }
var itemsPublisher: CurrentValuePublisher<[TimelineItemProxy], Never> { get }
}