mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Add missing image provider to RoomChangeRolesScreenViewModel. (#2715)
* Add an assertion for a missing image provider. * Pass an image provider to RoomChangeRolesScreenViewModel. * Update snapshots.
This commit is contained in:
@@ -1093,6 +1093,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
|
||||
private func presentRolesAndPermissionsScreen() {
|
||||
let parameters = RoomRolesAndPermissionsFlowCoordinatorParameters(roomProxy: roomProxy,
|
||||
mediaProvider: userSession.mediaProvider,
|
||||
navigationStackCoordinator: navigationStackCoordinator,
|
||||
userIndicatorController: userIndicatorController,
|
||||
analytics: analytics)
|
||||
|
||||
@@ -25,6 +25,7 @@ enum RoomRolesAndPermissionsFlowCoordinatorAction: Equatable {
|
||||
|
||||
struct RoomRolesAndPermissionsFlowCoordinatorParameters {
|
||||
let roomProxy: RoomProxyProtocol
|
||||
let mediaProvider: MediaProviderProtocol
|
||||
let navigationStackCoordinator: NavigationStackCoordinator
|
||||
let userIndicatorController: UserIndicatorControllerProtocol
|
||||
let analytics: AnalyticsService
|
||||
@@ -33,6 +34,7 @@ struct RoomRolesAndPermissionsFlowCoordinatorParameters {
|
||||
class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
private let roomProxy: RoomProxyProtocol
|
||||
private let navigationStackCoordinator: NavigationStackCoordinator
|
||||
private let mediaProvider: MediaProviderProtocol
|
||||
private let userIndicatorController: UserIndicatorControllerProtocol
|
||||
private let analytics: AnalyticsService
|
||||
|
||||
@@ -75,6 +77,7 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
init(parameters: RoomRolesAndPermissionsFlowCoordinatorParameters) {
|
||||
roomProxy = parameters.roomProxy
|
||||
navigationStackCoordinator = parameters.navigationStackCoordinator
|
||||
mediaProvider = parameters.mediaProvider
|
||||
userIndicatorController = parameters.userIndicatorController
|
||||
analytics = parameters.analytics
|
||||
|
||||
@@ -164,6 +167,7 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
|
||||
let parameters = RoomChangeRolesScreenCoordinatorParameters(mode: mode,
|
||||
roomProxy: roomProxy,
|
||||
mediaProvider: mediaProvider,
|
||||
userIndicatorController: userIndicatorController,
|
||||
analytics: analytics)
|
||||
let coordinator = RoomChangeRolesScreenCoordinator(parameters: parameters)
|
||||
|
||||
@@ -102,6 +102,8 @@ private struct LoadableImageContent<TransformerView: View, PlaceholderView: View
|
||||
imageProvider: ImageProviderProtocol?,
|
||||
transformer: @escaping (AnyView) -> TransformerView,
|
||||
placeholder: @escaping () -> PlaceholderView) {
|
||||
assert(imageProvider != nil, "Missing image provider, make sure one has been supplied to the view model.")
|
||||
|
||||
self.mediaSource = mediaSource
|
||||
self.mediaType = mediaType
|
||||
self.blurhash = blurhash
|
||||
|
||||
@@ -22,6 +22,7 @@ import SwiftUI
|
||||
struct RoomChangeRolesScreenCoordinatorParameters {
|
||||
let mode: RoomMemberDetails.Role
|
||||
let roomProxy: RoomProxyProtocol
|
||||
let mediaProvider: MediaProviderProtocol
|
||||
let userIndicatorController: UserIndicatorControllerProtocol
|
||||
let analytics: AnalyticsService
|
||||
}
|
||||
@@ -46,6 +47,7 @@ final class RoomChangeRolesScreenCoordinator: CoordinatorProtocol {
|
||||
|
||||
viewModel = RoomChangeRolesScreenViewModel(mode: parameters.mode,
|
||||
roomProxy: parameters.roomProxy,
|
||||
mediaProvider: parameters.mediaProvider,
|
||||
userIndicatorController: parameters.userIndicatorController,
|
||||
analytics: parameters.analytics)
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ class RoomChangeRolesScreenViewModel: RoomChangeRolesScreenViewModelType, RoomCh
|
||||
|
||||
init(mode: RoomMemberDetails.Role,
|
||||
roomProxy: RoomProxyProtocol,
|
||||
mediaProvider: MediaProviderProtocol,
|
||||
userIndicatorController: UserIndicatorControllerProtocol,
|
||||
analytics: AnalyticsService) {
|
||||
guard mode != .user else { fatalError("Invalid screen configuration: \(mode)") }
|
||||
@@ -43,7 +44,8 @@ class RoomChangeRolesScreenViewModel: RoomChangeRolesScreenViewModelType, RoomCh
|
||||
administrators: [],
|
||||
moderators: [],
|
||||
users: [],
|
||||
bindings: .init()))
|
||||
bindings: .init()),
|
||||
imageProvider: mediaProvider)
|
||||
|
||||
roomProxy.membersPublisher
|
||||
.receive(on: DispatchQueue.main)
|
||||
|
||||
@@ -133,6 +133,7 @@ struct RoomChangeRolesScreen_Previews: PreviewProvider, TestablePreview {
|
||||
static func makeViewModel(mode: RoomMemberDetails.Role) -> RoomChangeRolesScreenViewModel {
|
||||
RoomChangeRolesScreenViewModel(mode: mode,
|
||||
roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)),
|
||||
mediaProvider: MockMediaProvider(),
|
||||
userIndicatorController: UserIndicatorControllerMock(),
|
||||
analytics: ServiceLocator.shared.analytics)
|
||||
}
|
||||
|
||||
@@ -483,6 +483,7 @@ class MockScreen: Identifiable {
|
||||
let navigationStackCoordinator = NavigationStackCoordinator()
|
||||
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
||||
let coordinator = RoomRolesAndPermissionsFlowCoordinator(parameters: .init(roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)),
|
||||
mediaProvider: MockMediaProvider(),
|
||||
navigationStackCoordinator: navigationStackCoordinator,
|
||||
userIndicatorController: ServiceLocator.shared.userIndicatorController,
|
||||
analytics: ServiceLocator.shared.analytics))
|
||||
|
||||
Reference in New Issue
Block a user