Always open manage member sheet (#4110)

* always open manage member sheet

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* pr suggestions and handled the buttons actions correctly

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/View/ManageRoomMemberSheetView.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* fixed some compilation errors

* added some documentation

* using a struct instead of a protocol

* using arguments instead of a struct

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
This commit is contained in:
Mauro
2025-05-19 16:17:57 +02:00
committed by GitHub
parent 4f4b4b236d
commit 9a8819ac26
25 changed files with 334 additions and 170 deletions
@@ -17,7 +17,8 @@ struct RoomMemberDetails: Identifiable, Hashable {
var isInvited: Bool
var isIgnored: Bool
var isBanned: Bool
var isActive: Bool
enum Role { case administrator, moderator, user }
let role: Role
let powerLevel: Int
@@ -34,7 +35,7 @@ extension RoomMemberDetails {
name = proxy.displayName
avatarURL = proxy.avatarURL
permalink = proxy.permalink
isActive = proxy.isActive
isInvited = proxy.membership == .invite
isIgnored = proxy.isIgnored
isBanned = proxy.membership == .ban
@@ -31,7 +31,7 @@ protocol RoomMemberProxyProtocol: AnyObject {
extension RoomMemberProxyProtocol {
/// The member is active in the room (joined or invited).
var isActive: Bool {
membership == .join || membership == .invite
membership == .join || membership == .invite || membership == .knock
}
var permalink: URL? {
@@ -25,6 +25,12 @@ struct UserProfileProxy: Equatable, Hashable {
avatarURL = member.isBanned ? nil : member.avatarURL
}
init(sender: TimelineItemSender) {
userID = sender.id
displayName = sender.displayName
avatarURL = sender.avatarURL
}
init(sdkUserProfile: MatrixRustSDK.UserProfile) {
userID = sdkUserProfile.userId
displayName = sdkUserProfile.displayName