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:
Gil Eluard
2021-12-23 14:08:00 +01:00
parent 9bf1c994cc
commit cfd00fea40
55 changed files with 1621 additions and 613 deletions
@@ -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
}
}