mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Join room by address (#3840)
* Implemented join room by address * improved the text field typing * some improvements to how the text is edited * remove navigation link * moved room directory search to the start chat flow * updated preview tests * added unit tests and improved the code * updated strings * some pr suggestions: - moving the file - changing the name of the action - reintroduce the debounce text queries - add comments * renamed the auth text field style to Element updated tests
This commit is contained in:
@@ -25,7 +25,6 @@ enum HomeScreenCoordinatorAction {
|
||||
case presentEncryptionResetScreen
|
||||
case presentStartChatScreen
|
||||
case presentGlobalSearch
|
||||
case presentRoomDirectorySearch
|
||||
case logoutWithoutConfirmation
|
||||
case logout
|
||||
}
|
||||
@@ -75,8 +74,6 @@ final class HomeScreenCoordinator: CoordinatorProtocol {
|
||||
actionsSubject.send(.presentStartChatScreen)
|
||||
case .presentGlobalSearch:
|
||||
actionsSubject.send(.presentGlobalSearch)
|
||||
case .presentRoomDirectorySearch:
|
||||
actionsSubject.send(.presentRoomDirectorySearch)
|
||||
case .logoutWithoutConfirmation:
|
||||
actionsSubject.send(.logoutWithoutConfirmation)
|
||||
case .logout:
|
||||
|
||||
@@ -20,7 +20,6 @@ enum HomeScreenViewModelAction: Equatable {
|
||||
case presentFeedbackScreen
|
||||
case presentStartChatScreen
|
||||
case presentGlobalSearch
|
||||
case presentRoomDirectorySearch
|
||||
case logoutWithoutConfirmation
|
||||
case logout
|
||||
}
|
||||
@@ -41,7 +40,6 @@ enum HomeScreenViewAction {
|
||||
case markRoomAsUnread(roomIdentifier: String)
|
||||
case markRoomAsRead(roomIdentifier: String)
|
||||
case markRoomAsFavourite(roomIdentifier: String, isFavourite: Bool)
|
||||
case selectRoomDirectorySearch
|
||||
|
||||
case acceptInvite(roomIdentifier: String)
|
||||
case declineInvite(roomIdentifier: String)
|
||||
@@ -97,9 +95,7 @@ struct HomeScreenViewState: BindableState {
|
||||
var roomListMode: HomeScreenRoomListMode = .skeletons
|
||||
|
||||
var hasPendingInvitations = false
|
||||
|
||||
var isRoomDirectorySearchEnabled = false
|
||||
|
||||
|
||||
var selectedRoomID: String?
|
||||
|
||||
var visibleRooms: [HomeScreenRoom] {
|
||||
|
||||
@@ -94,10 +94,6 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
||||
.sink { [weak self] _ in self?.updateRooms() }
|
||||
.store(in: &cancellables)
|
||||
|
||||
appSettings.$publicSearchEnabled
|
||||
.weakAssign(to: \.state.isRoomDirectorySearchEnabled, on: self)
|
||||
.store(in: &cancellables)
|
||||
|
||||
appSettings.$seenInvites
|
||||
.removeDuplicates()
|
||||
.sink { [weak self] _ in
|
||||
@@ -194,8 +190,6 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
||||
Task {
|
||||
await markRoomAsFavourite(roomIdentifier, isFavourite: isFavourite)
|
||||
}
|
||||
case .selectRoomDirectorySearch:
|
||||
actionsSubject.send(.presentRoomDirectorySearch)
|
||||
case .acceptInvite(let roomIdentifier):
|
||||
Task {
|
||||
await acceptInvite(roomID: roomIdentifier)
|
||||
|
||||
@@ -16,10 +16,6 @@ struct HomeScreenRoomList: View {
|
||||
// avoids glitches when focusing the search bar
|
||||
if !context.viewState.shouldHideRoomList {
|
||||
content
|
||||
} else if context.viewState.isRoomDirectorySearchEnabled {
|
||||
RoomDirectorySearchView {
|
||||
context.send(viewAction: .selectRoomDirectorySearch)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
//
|
||||
// Copyright 2024 New Vector Ltd.
|
||||
//
|
||||
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
// Please see LICENSE files in the repository root for full details.
|
||||
//
|
||||
|
||||
import Compound
|
||||
import SwiftUI
|
||||
|
||||
struct RoomDirectorySearchView: View {
|
||||
let onTap: () -> Void
|
||||
|
||||
var body: some View {
|
||||
Button(action: onTap) {
|
||||
Label(L10n.screenRoomlistRoomDirectoryButtonTitle, icon: \.listBulleted)
|
||||
}
|
||||
.buttonStyle(.compound(.super))
|
||||
.padding(.horizontal, 16)
|
||||
.padding(.vertical, 8)
|
||||
}
|
||||
}
|
||||
|
||||
struct RoomDirectorySearchView_Previews: PreviewProvider, TestablePreview {
|
||||
static var previews: some View {
|
||||
RoomDirectorySearchView { }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user