mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 09:02:44 +02:00
#1098 - Added user suggestions to the main app timeline.
This commit is contained in:
@@ -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"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-6
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user