mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-26 19:34:25 +02:00
SP2: Adding Rooms to Spaces element-ios#5230
- Implemented designs with new & existing tabs in a bottom sheet - Replaced rough edge warnings from space panel overflow with working journeys
This commit is contained in:
@@ -65,6 +65,7 @@ final class SideMenuCoordinator: NSObject, SideMenuCoordinatorType {
|
||||
private var exploreRoomCoordinator: ExploreRoomCoordinator?
|
||||
private var membersCoordinator: SpaceMembersCoordinator?
|
||||
private var createSpaceCoordinator: SpaceCreationCoordinator?
|
||||
private var createRoomCoordinator: CreateRoomCoordinator?
|
||||
|
||||
// MARK: Public
|
||||
|
||||
@@ -288,6 +289,18 @@ final class SideMenuCoordinator: NSObject, SideMenuCoordinatorType {
|
||||
self.createSpaceCoordinator = coordinator
|
||||
}
|
||||
|
||||
private func showAddRoom(spaceId: String, session: MXSession) {
|
||||
let space = session.spaceService.getSpace(withId: spaceId)
|
||||
let createRoomCoordinator = CreateRoomCoordinator(session: session, parentSpace: space)
|
||||
createRoomCoordinator.delegate = self
|
||||
let presentable = createRoomCoordinator.toPresentable()
|
||||
presentable.presentationController?.delegate = self
|
||||
toPresentable().present(presentable, animated: true, completion: nil)
|
||||
createRoomCoordinator.start()
|
||||
self.add(childCoordinator: createRoomCoordinator)
|
||||
self.createRoomCoordinator = createRoomCoordinator
|
||||
}
|
||||
|
||||
// MARK: UserSessions management
|
||||
|
||||
private func registerUserSessionsServiceNotifications() {
|
||||
@@ -380,7 +393,7 @@ extension SideMenuCoordinator: SpaceMenuPresenterDelegate {
|
||||
case .exploreMembers:
|
||||
self.showMembers(spaceId: spaceId, session: session)
|
||||
case .addRoom:
|
||||
AppDelegate.theDelegate().showAlert(withTitle: VectorL10n.spacesAddRoom, message: VectorL10n.spacesComingSoonDetail)
|
||||
self.showAddRoom(spaceId: spaceId, session: session)
|
||||
case .addSpace:
|
||||
AppDelegate.theDelegate().showAlert(withTitle: VectorL10n.spacesAddSpace, message: VectorL10n.spacesComingSoonDetail)
|
||||
case .settings:
|
||||
@@ -423,6 +436,39 @@ extension SideMenuCoordinator: SpaceMembersCoordinatorDelegate {
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - CreateRoomCoordinatorDelegate
|
||||
extension SideMenuCoordinator: CreateRoomCoordinatorDelegate {
|
||||
func createRoomCoordinator(_ coordinator: CreateRoomCoordinatorType, didCreateNewRoom room: MXRoom) {
|
||||
coordinator.toPresentable().dismiss(animated: true) {
|
||||
self.createRoomCoordinator = nil
|
||||
self.parameters.appNavigator.sideMenu.dismiss(animated: true) {
|
||||
|
||||
}
|
||||
if let spaceId = coordinator.parentSpace?.spaceId {
|
||||
self.parameters.appNavigator.navigate(to: .space(spaceId))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func createRoomCoordinator(_ coordinator: CreateRoomCoordinatorType, didAddRoomsWithId roomIds: [String]) {
|
||||
coordinator.toPresentable().dismiss(animated: true) {
|
||||
self.createRoomCoordinator = nil
|
||||
self.parameters.appNavigator.sideMenu.dismiss(animated: true) {
|
||||
|
||||
}
|
||||
if let spaceId = coordinator.parentSpace?.spaceId {
|
||||
self.parameters.appNavigator.navigate(to: .space(spaceId))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func createRoomCoordinatorDidCancel(_ coordinator: CreateRoomCoordinatorType) {
|
||||
coordinator.toPresentable().dismiss(animated: true) {
|
||||
self.createRoomCoordinator = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - UIAdaptivePresentationControllerDelegate
|
||||
extension SideMenuCoordinator: UIAdaptivePresentationControllerDelegate {
|
||||
|
||||
@@ -430,5 +476,6 @@ extension SideMenuCoordinator: UIAdaptivePresentationControllerDelegate {
|
||||
self.exploreRoomCoordinator = nil
|
||||
self.membersCoordinator = nil
|
||||
self.createSpaceCoordinator = nil
|
||||
self.createRoomCoordinator = nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user