mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Bundle ClientProxy & MediaProvider injections together in UserSession.
This commit is contained in:
@@ -9,9 +9,8 @@ import Combine
|
||||
import SwiftUI
|
||||
|
||||
struct RoomSelectionScreenCoordinatorParameters {
|
||||
let clientProxy: ClientProxyProtocol
|
||||
let userSession: UserSessionProtocol
|
||||
let roomSummaryProvider: RoomSummaryProviderProtocol
|
||||
let mediaProvider: MediaProviderProtocol
|
||||
}
|
||||
|
||||
enum RoomSelectionScreenCoordinatorAction {
|
||||
@@ -29,9 +28,8 @@ final class RoomSelectionScreenCoordinator: CoordinatorProtocol {
|
||||
}
|
||||
|
||||
init(parameters: RoomSelectionScreenCoordinatorParameters) {
|
||||
viewModel = RoomSelectionScreenViewModel(clientProxy: parameters.clientProxy,
|
||||
roomSummaryProvider: parameters.roomSummaryProvider,
|
||||
mediaProvider: parameters.mediaProvider)
|
||||
viewModel = RoomSelectionScreenViewModel(userSession: parameters.userSession,
|
||||
roomSummaryProvider: parameters.roomSummaryProvider)
|
||||
}
|
||||
|
||||
func start() {
|
||||
|
||||
@@ -20,13 +20,12 @@ class RoomSelectionScreenViewModel: RoomSelectionScreenViewModelType, RoomSelect
|
||||
actionsSubject.eraseToAnyPublisher()
|
||||
}
|
||||
|
||||
init(clientProxy: ClientProxyProtocol,
|
||||
roomSummaryProvider: RoomSummaryProviderProtocol,
|
||||
mediaProvider: MediaProviderProtocol) {
|
||||
self.clientProxy = clientProxy
|
||||
init(userSession: UserSessionProtocol,
|
||||
roomSummaryProvider: RoomSummaryProviderProtocol) {
|
||||
clientProxy = userSession.clientProxy
|
||||
self.roomSummaryProvider = roomSummaryProvider
|
||||
|
||||
super.init(initialViewState: RoomSelectionScreenViewState(), mediaProvider: mediaProvider)
|
||||
super.init(initialViewState: RoomSelectionScreenViewState(), mediaProvider: userSession.mediaProvider)
|
||||
|
||||
roomSummaryProvider.roomListPublisher
|
||||
.receive(on: DispatchQueue.main)
|
||||
|
||||
@@ -94,9 +94,8 @@ private struct RoomSelectionListRow: View {
|
||||
struct RoomSelectionScreen_Previews: PreviewProvider, TestablePreview {
|
||||
static var previews: some View {
|
||||
let summaryProvider = RoomSummaryProviderMock(.init(state: .loaded(.mockRooms)))
|
||||
let viewModel = RoomSelectionScreenViewModel(clientProxy: ClientProxyMock(.init()),
|
||||
roomSummaryProvider: summaryProvider,
|
||||
mediaProvider: MediaProviderMock(configuration: .init()))
|
||||
let viewModel = RoomSelectionScreenViewModel(userSession: UserSessionMock(.init()),
|
||||
roomSummaryProvider: summaryProvider)
|
||||
|
||||
NavigationStack {
|
||||
RoomSelectionScreen(context: viewModel.context)
|
||||
|
||||
Reference in New Issue
Block a user