Add user search for dm chats (#739)

* Add searchUsers in ClientProxy

* Add UserSearchProtocol

* Delete UserSearch file

* Add search

* Refine StartChatScreen

* Improve StartChatViewModel

* Add localizations

* Fix no result style

* Update localizations

* Add UTs

* Add UI tests

* Cleanup

* Refine tests

* Add changelog.d file

* Naming refactor

* Refactor ClientProxyProtocol api

* Fix typo

* Add mark

* Rename tests

* Update Dangerfile

* Improve UI test code

* Refactor search api

* Improve style

* Improve combine chain

* Add comment

* Improve StartChatScreen

* Improve updateState

* Add extension Published.Publisher

* Improve UI tests

* Remove Combine import

* Cleanup

* Remove “proxy” wording

* Delete extra extensions

* Refactor Publisher api
This commit is contained in:
Alfonso Grillo
2023-03-29 14:29:25 +02:00
committed by GitHub
parent f67207616b
commit e15b36b916
22 changed files with 204 additions and 44 deletions
@@ -17,20 +17,32 @@
import Foundation
import MatrixRustSDK
struct UserProfileProxy {
struct UserProfile {
let userID: String
let displayName: String?
let avatarURL: URL?
init(userID: String, displayName: String?, avatarURL: URL?) {
init(userID: String, displayName: String? = nil, avatarURL: URL? = nil) {
self.userID = userID
self.displayName = displayName
self.avatarURL = avatarURL
}
init(userProfile: UserProfile) {
userID = userProfile.userId
displayName = userProfile.displayName
avatarURL = userProfile.avatarUrl.flatMap(URL.init(string:))
init(sdkUserProfile: MatrixRustSDK.UserProfile) {
userID = sdkUserProfile.userId
displayName = sdkUserProfile.displayName
avatarURL = sdkUserProfile.avatarUrl.flatMap(URL.init(string:))
}
}
struct SearchUsersResults {
let results: [UserProfile]
let limited: Bool
}
extension SearchUsersResults {
init(sdkResults: MatrixRustSDK.SearchUsersResults) {
results = sdkResults.results.map(UserProfile.init)
limited = sdkResults.limited
}
}