implemented the logic to transfer ownership from a space

This commit is contained in:
Mauro Romito
2026-01-27 17:52:28 +01:00
committed by Mauro
parent b903658975
commit 9de49bad9e
11 changed files with 72 additions and 22 deletions
@@ -28,6 +28,7 @@ enum SpaceScreenCoordinatorAction {
case displayMembers(roomProxy: JoinedRoomProxyProtocol)
case displaySpaceSettings(roomProxy: JoinedRoomProxyProtocol)
case displayRolesAndPermissions(roomProxy: JoinedRoomProxyProtocol)
case displayTransferOwnership(roomProxy: JoinedRoomProxyProtocol)
case addExistingChildren
case displayCreateChildRoomFlow(space: SpaceServiceRoom)
}
@@ -78,6 +79,8 @@ final class SpaceScreenCoordinator: CoordinatorProtocol {
actionsSubject.send(.addExistingChildren)
case .displayCreateChildRoomFlow(let space):
actionsSubject.send(.displayCreateChildRoomFlow(space: space))
case .presentTransferOwnership(roomProxy: let roomProxy):
actionsSubject.send(.displayTransferOwnership(roomProxy: roomProxy))
}
}
.store(in: &cancellables)
@@ -14,6 +14,7 @@ enum SpaceScreenViewModelAction {
case selectRoom(roomID: String)
case leftSpace
case presentRolesAndPermissions(roomProxy: JoinedRoomProxyProtocol)
case presentTransferOwnership(roomProxy: JoinedRoomProxyProtocol)
case displayMembers(roomProxy: JoinedRoomProxyProtocol)
case displaySpaceSettings(roomProxy: JoinedRoomProxyProtocol)
case addExistingChildren
@@ -261,6 +261,12 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
case .didLeaveSpace:
state.bindings.leaveSpaceViewModel = nil
actionsSubject.send(.leftSpace)
case .presentTransferOwnership:
guard let roomProxy = state.roomProxy else {
fatalError("The space screen should always have a room proxy")
}
state.bindings.leaveSpaceViewModel = nil
actionsSubject.send(.presentTransferOwnership(roomProxy: roomProxy))
}
}
.store(in: &cancellables)