#1098 - Added user suggestions to the main app timeline.

This commit is contained in:
Stefan Ceriu
2021-10-04 11:37:37 +03:00
parent ccfdfa1fb8
commit 388e521a89
8 changed files with 129 additions and 27 deletions
@@ -28,15 +28,38 @@ class UserSuggestionService: UserSuggestionServiceProtocol {
private let room: MXRoom
private var suggestionItems: [UserSuggestionItemProtocol] = []
// MARK: Public
var items: CurrentValueSubject<[UserSuggestionItemProtocol], Never>
// MARK: - Setup
init(room: MXRoom) {
self.room = room
self.items = CurrentValueSubject([])
generateUsersWithCount(10)
items.send(suggestionItems)
}
func processPartialUserName(_ userName: String) {
guard userName.count > 0 else {
items.send(suggestionItems)
return
}
items.send(suggestionItems.filter({ userSuggestion in
return (userSuggestion.displayName?.lowercased().range(of: userName.lowercased()) != .none)
}))
}
private func generateUsersWithCount(_ count: UInt) {
suggestionItems.removeAll()
for _ in 0..<count {
let identifier = "@" + UUID().uuidString
suggestionItems.append(MockUserSuggestionServiceItem(userId: identifier, displayName: identifier, avatarUrl: "mxc://matrix.org/VyNYAgahaiAzUoOeZETtQ"))
}
}
}
@@ -22,8 +22,6 @@ import SwiftUI
@available(iOS 14.0, *)
enum MockUserSuggestionScreenState: MockScreenState, CaseIterable {
case multipleResults
case oneResult
case empty
var screenType: Any.Type {
MockUserSuggestionScreenState.self
@@ -32,10 +30,6 @@ enum MockUserSuggestionScreenState: MockScreenState, CaseIterable {
var screenView: ([Any], AnyView) {
let service: MockUserSuggestionService
switch self {
case .empty:
service = MockUserSuggestionService(userCount: 0)
case .oneResult:
service = MockUserSuggestionService(userCount: 1)
case .multipleResults:
service = MockUserSuggestionService(userCount: 10)
}