mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-22 09:32:52 +02:00
Merge branch 'develop' into aringenbach/enable_rte_user_mentions
This commit is contained in:
@@ -24,7 +24,13 @@ struct RoomMembersProviderMember {
|
||||
var avatarUrl: String
|
||||
}
|
||||
|
||||
class UserSuggestionID: NSObject {
|
||||
/// A special case added for suggesting `@room` mentions.
|
||||
@objc static let room = "@room"
|
||||
}
|
||||
|
||||
protocol RoomMembersProviderProtocol {
|
||||
var canMentionRoom: Bool { get }
|
||||
func fetchMembers(_ members: @escaping ([RoomMembersProviderMember]) -> Void)
|
||||
}
|
||||
|
||||
@@ -111,7 +117,7 @@ class UserSuggestionService: UserSuggestionServiceProtocol {
|
||||
return
|
||||
}
|
||||
|
||||
self.suggestionItems = members.map { member in
|
||||
self.suggestionItems = members.withRoom(self.roomMemberProvider.canMentionRoom).map { member in
|
||||
UserSuggestionServiceItem(userId: member.userId, displayName: member.displayName, avatarUrl: member.avatarUrl)
|
||||
}
|
||||
|
||||
@@ -124,3 +130,11 @@ class UserSuggestionService: UserSuggestionServiceProtocol {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Array where Element == RoomMembersProviderMember {
|
||||
/// Returns the array with an additional member that represents an `@room` mention.
|
||||
func withRoom(_ canMentionRoom: Bool) -> Self {
|
||||
guard canMentionRoom else { return self }
|
||||
return self + [RoomMembersProviderMember(userId: UserSuggestionID.room, displayName: "Everyone", avatarUrl: "")]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user