diff --git a/Riot/Modules/SideMenu/SideMenuCoordinator.swift b/Riot/Modules/SideMenu/SideMenuCoordinator.swift index e7f1a1218..19341a342 100644 --- a/Riot/Modules/SideMenu/SideMenuCoordinator.swift +++ b/Riot/Modules/SideMenu/SideMenuCoordinator.swift @@ -448,6 +448,7 @@ extension SideMenuCoordinator: SpaceMembersCoordinatorDelegate { extension SideMenuCoordinator: CreateRoomCoordinatorDelegate { func createRoomCoordinator(_ coordinator: CreateRoomCoordinatorType, didCreateNewRoom room: MXRoom) { coordinator.toPresentable().dismiss(animated: true) { + self.remove(childCoordinator: coordinator) self.createRoomCoordinator = nil self.parameters.appNavigator.sideMenu.dismiss(animated: true) { @@ -460,6 +461,7 @@ extension SideMenuCoordinator: CreateRoomCoordinatorDelegate { func createRoomCoordinator(_ coordinator: CreateRoomCoordinatorType, didAddRoomsWithIds roomIds: [String]) { coordinator.toPresentable().dismiss(animated: true) { + self.remove(childCoordinator: coordinator) self.createRoomCoordinator = nil self.parameters.appNavigator.sideMenu.dismiss(animated: true) { @@ -472,6 +474,7 @@ extension SideMenuCoordinator: CreateRoomCoordinatorDelegate { func createRoomCoordinatorDidCancel(_ coordinator: CreateRoomCoordinatorType) { coordinator.toPresentable().dismiss(animated: true) { + self.remove(childCoordinator: coordinator) self.createRoomCoordinator = nil } } diff --git a/Riot/Modules/Spaces/SpaceRoomList/ExploreRoom/SpaceExploreRoomViewModel.swift b/Riot/Modules/Spaces/SpaceRoomList/ExploreRoom/SpaceExploreRoomViewModel.swift index 776322d8e..828c63a66 100644 --- a/Riot/Modules/Spaces/SpaceRoomList/ExploreRoom/SpaceExploreRoomViewModel.swift +++ b/Riot/Modules/Spaces/SpaceRoomList/ExploreRoom/SpaceExploreRoomViewModel.swift @@ -84,7 +84,6 @@ final class SpaceExploreRoomViewModel: SpaceExploreRoomViewModelType { deinit { self.cancelOperations() - } // MARK: - Public diff --git a/RiotSwiftUI/Modules/Spaces/AddRoomSelector/View/AddRoomSelector.swift b/RiotSwiftUI/Modules/Spaces/AddRoomSelector/View/AddRoomSelector.swift index c81faa53d..289a1d564 100644 --- a/RiotSwiftUI/Modules/Spaces/AddRoomSelector/View/AddRoomSelector.swift +++ b/RiotSwiftUI/Modules/Spaces/AddRoomSelector/View/AddRoomSelector.swift @@ -27,21 +27,32 @@ struct AddRoomSelector: View { @Environment(\.theme) private var theme: ThemeSwiftUI + // MARK: Setup + var body: some View { MatrixItemChooser(viewModel: viewModel) .background(theme.colors.background) - .navigationBarItems(leading: Button(VectorL10n.cancel, action: { - viewModel.send(viewAction: .cancel) - }) - .font(theme.fonts.body) - .foregroundColor(theme.colors.accent), - trailing: Button(VectorL10n.add, action: { - viewModel.send(viewAction: .done) - }) - .font(theme.fonts.body) - .foregroundColor(viewModel.viewState.selectedItemIds.isEmpty ? theme.colors.quarterlyContent : theme.colors.accent) - .opacity(viewModel.viewState.selectedItemIds.isEmpty ? 0.7 : 1) - .disabled(viewModel.viewState.selectedItemIds.isEmpty)) + .navigationBarItems(leading: cancelButton, + trailing: doneButton) } + // MARK: Private + + private var cancelButton: some View { + Button(VectorL10n.cancel, action: { + viewModel.send(viewAction: .cancel) + }) + .font(theme.fonts.body) + .foregroundColor(theme.colors.accent) + } + + private var doneButton: some View { + Button(VectorL10n.add, action: { + viewModel.send(viewAction: .done) + }) + .font(theme.fonts.body) + .foregroundColor(viewModel.viewState.selectedItemIds.isEmpty ? theme.colors.quarterlyContent : theme.colors.accent) + .opacity(viewModel.viewState.selectedItemIds.isEmpty ? 0.7 : 1) + .disabled(viewModel.viewState.selectedItemIds.isEmpty) + } }