refactored the flows to use a state and an event for the transfer ownership screen

This commit is contained in:
Mauro Romito
2026-01-28 14:33:28 +01:00
committed by Mauro
parent 9999cd24b8
commit 8f6506ced0
14 changed files with 116 additions and 27 deletions
@@ -66,7 +66,7 @@ struct LeaveSpaceView: View {
Section {
ForEach(context.viewState.leaveHandle.rooms, id: \.spaceServiceRoom.id) { room in
LeaveSpaceRoomDetailsCell(room: room,
hideSelection: !context.viewState.leaveHandle.canLeave,
hideSelection: !room.canLeave,
mediaProvider: context.mediaProvider) {
context.send(viewAction: .toggleRoom(roomID: room.spaceServiceRoom.id))
}
@@ -79,7 +79,7 @@ final class SpaceScreenCoordinator: CoordinatorProtocol {
actionsSubject.send(.addExistingChildren)
case .displayCreateChildRoomFlow(let space):
actionsSubject.send(.displayCreateChildRoomFlow(space: space))
case .presentTransferOwnership(roomProxy: let roomProxy):
case .presentTransferOwnership(let roomProxy):
actionsSubject.send(.displayTransferOwnership(roomProxy: roomProxy))
}
}
@@ -254,7 +254,7 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
state.bindings.leaveSpaceViewModel = nil
case .presentRolesAndPermissions:
guard let roomProxy = state.roomProxy else {
fatalError("The space screen should always have a room proxy")
fatalError("There should always be a room proxy available for joined spaces.")
}
state.bindings.leaveSpaceViewModel = nil
actionsSubject.send(.presentRolesAndPermissions(roomProxy: roomProxy))
@@ -263,7 +263,7 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
actionsSubject.send(.leftSpace)
case .presentTransferOwnership:
guard let roomProxy = state.roomProxy else {
fatalError("The space screen should always have a room proxy")
fatalError("There should always be a room proxy available for joined spaces.")
}
state.bindings.leaveSpaceViewModel = nil
actionsSubject.send(.presentTransferOwnership(roomProxy: roomProxy))