Bundle ClientProxy & MediaProvider injections together in UserSession.

This commit is contained in:
Doug
2025-08-27 17:25:28 +01:00
committed by Doug
parent b34816e159
commit f67f826bb7
74 changed files with 315 additions and 499 deletions
@@ -10,8 +10,7 @@ import SwiftUI
struct BlockedUsersScreenCoordinatorParameters {
let hideProfiles: Bool
let clientProxy: ClientProxyProtocol
let mediaProvider: MediaProviderProtocol
let userSession: UserSessionProtocol
let userIndicatorController: UserIndicatorControllerProtocol
}
@@ -20,8 +19,7 @@ final class BlockedUsersScreenCoordinator: CoordinatorProtocol {
init(parameters: BlockedUsersScreenCoordinatorParameters) {
viewModel = BlockedUsersScreenViewModel(hideProfiles: parameters.hideProfiles,
clientProxy: parameters.clientProxy,
mediaProvider: parameters.mediaProvider,
userSession: parameters.userSession,
userIndicatorController: parameters.userIndicatorController)
}
@@ -16,17 +16,16 @@ class BlockedUsersScreenViewModel: BlockedUsersScreenViewModelType, BlockedUsers
let userIndicatorController: UserIndicatorControllerProtocol
init(hideProfiles: Bool,
clientProxy: ClientProxyProtocol,
mediaProvider: MediaProviderProtocol,
userSession: UserSessionProtocol,
userIndicatorController: UserIndicatorControllerProtocol) {
self.hideProfiles = hideProfiles
self.clientProxy = clientProxy
clientProxy = userSession.clientProxy
self.userIndicatorController = userIndicatorController
let ignoredUsers = clientProxy.ignoredUsersPublisher.value?.map { UserProfileProxy(userID: $0) }
super.init(initialViewState: BlockedUsersScreenViewState(blockedUsers: ignoredUsers ?? []),
mediaProvider: mediaProvider)
mediaProvider: userSession.mediaProvider)
showLoadingIndicator()
@@ -56,8 +56,7 @@ struct BlockedUsersScreen: View {
struct BlockedUsersScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = BlockedUsersScreenViewModel(hideProfiles: true,
clientProxy: ClientProxyMock(.init(userID: RoomMemberProxyMock.mockMe.userID)),
mediaProvider: MediaProviderMock(configuration: .init()),
userSession: UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: RoomMemberProxyMock.mockMe.userID)))),
userIndicatorController: UserIndicatorControllerMock())
static var previews: some View {