Add the inviter to JoinRoomScreen when it's an invite. (#3093)

* Add inviter property to RoomProxyProtocol.

* Extract the room cell inviter label into it's own view.

* Use the new RoomInviterLabel in the JoinRoomScreen.

* Fix bug with invite to a public room.
This commit is contained in:
Doug
2024-07-29 09:57:49 +01:00
committed by GitHub
parent 9518e8a219
commit 0fab3a8afc
16 changed files with 156 additions and 53 deletions
@@ -144,12 +144,6 @@ struct HomeScreenRoom: Identifiable, Equatable {
case invite
}
struct InviterDetails: Equatable {
let userID: String
let displayName: String?
let avatarURL: URL?
}
static let placeholderLastMessage = AttributedString("Hidden last message")
/// The list item identifier is it's room identifier.
@@ -182,7 +176,7 @@ struct HomeScreenRoom: Identifiable, Equatable {
let avatar: RoomAvatar
let inviter: InviterDetails?
let inviter: RoomInviterDetails?
let canonicalAlias: String?
@@ -215,12 +209,7 @@ extension HomeScreenRoom {
let isCallShown = summary.hasOngoingCall
let isHighlighted = summary.isMarkedUnread || (!summary.isMuted && (summary.hasUnreadNotifications || summary.hasUnreadMentions))
var inviter: InviterDetails?
if let roomMemberProxy = summary.inviter {
inviter = .init(userID: roomMemberProxy.userID,
displayName: roomMemberProxy.displayName,
avatarURL: roomMemberProxy.avatarURL)
}
let inviter = summary.inviter.map(RoomInviterDetails.init)
self.init(id: identifier,
roomID: summary.id,