mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +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:
@@ -12,16 +12,18 @@ enum StartChatScreenErrorType: Error {
|
||||
case unknown
|
||||
}
|
||||
|
||||
enum StartChatScreenViewModelAction {
|
||||
enum StartChatScreenViewModelAction: Equatable {
|
||||
case close
|
||||
case createRoom
|
||||
case openRoom(withIdentifier: String)
|
||||
case showRoom(withIdentifier: String)
|
||||
case openRoomDirectorySearch
|
||||
}
|
||||
|
||||
struct StartChatScreenViewState: BindableState {
|
||||
let userID: String
|
||||
var bindings = StartChatScreenViewStateBindings()
|
||||
var usersSection: UserDiscoverySection = .init(type: .suggestions, users: [])
|
||||
var isRoomDirectoryEnabled = false
|
||||
|
||||
var isSearching: Bool {
|
||||
!bindings.searchQuery.isEmpty
|
||||
@@ -30,15 +32,19 @@ struct StartChatScreenViewState: BindableState {
|
||||
var hasEmptySearchResults: Bool {
|
||||
isSearching && usersSection.type == .searchResult && usersSection.users.isEmpty
|
||||
}
|
||||
|
||||
var joinByAddressState: JoinByAddressState = .example
|
||||
}
|
||||
|
||||
struct StartChatScreenViewStateBindings {
|
||||
var searchQuery = ""
|
||||
var roomAddress = ""
|
||||
|
||||
/// Information describing the currently displayed alert.
|
||||
var alertInfo: AlertInfo<StartChatScreenErrorType>?
|
||||
|
||||
var selectedUserToInvite: UserProfileProxy?
|
||||
var isJoinRoomByAddressSheetPresented = false
|
||||
}
|
||||
|
||||
enum StartChatScreenViewAction {
|
||||
@@ -46,4 +52,13 @@ enum StartChatScreenViewAction {
|
||||
case createRoom
|
||||
case createDM(user: UserProfileProxy)
|
||||
case selectUser(UserProfileProxy)
|
||||
case joinRoomByAddress
|
||||
case openRoomDirectorySearch
|
||||
}
|
||||
|
||||
enum JoinByAddressState: Equatable {
|
||||
case example
|
||||
case invalidAddress
|
||||
case addressNotFound
|
||||
case addressFound(address: String, roomID: String)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user