mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Rename UserProfileProxy to UserProfile. It's a pure struct and proxies nothing.
Also remove the redundant `userID` property given `id` already exists (for Identifiable conformance).
This commit is contained in:
@@ -13,7 +13,7 @@ import SwiftUI
|
||||
struct AvatarHeaderView<Footer: View>: View {
|
||||
private enum AvatarInfo {
|
||||
case room(RoomAvatar)
|
||||
case user(UserProfileProxy)
|
||||
case user(UserProfile)
|
||||
}
|
||||
|
||||
private enum Badge: Hashable {
|
||||
@@ -44,7 +44,7 @@ struct AvatarHeaderView<Footer: View>: View {
|
||||
if let roomAlias = room.canonicalAlias {
|
||||
subtitle = roomAlias
|
||||
} else if room.isDirect, case let .heroes(heroes) = room.avatar, heroes.count == 1 {
|
||||
subtitle = heroes[0].userID
|
||||
subtitle = heroes[0].id
|
||||
} else {
|
||||
subtitle = nil
|
||||
}
|
||||
@@ -70,10 +70,10 @@ struct AvatarHeaderView<Footer: View>: View {
|
||||
mediaProvider: MediaProviderProtocol? = nil,
|
||||
onAvatarTap: ((URL) -> Void)? = nil,
|
||||
@ViewBuilder footer: @escaping () -> Footer) {
|
||||
let dmRecipientProfile = UserProfileProxy(member: dmRecipient)
|
||||
avatarInfo = .room(.heroes([dmRecipientProfile, UserProfileProxy(member: accountOwner)]))
|
||||
title = dmRecipientProfile.displayName ?? dmRecipientProfile.userID
|
||||
subtitle = dmRecipientProfile.displayName == nil ? nil : dmRecipientProfile.userID
|
||||
let dmRecipientProfile = UserProfile(member: dmRecipient)
|
||||
avatarInfo = .room(.heroes([dmRecipientProfile, UserProfile(member: accountOwner)]))
|
||||
title = dmRecipientProfile.displayName ?? dmRecipientProfile.id
|
||||
subtitle = dmRecipientProfile.displayName == nil ? nil : dmRecipientProfile.id
|
||||
|
||||
avatarSize = .user(on: .dmDetails)
|
||||
self.mediaProvider = mediaProvider
|
||||
@@ -89,7 +89,7 @@ struct AvatarHeaderView<Footer: View>: View {
|
||||
mediaProvider: MediaProviderProtocol? = nil,
|
||||
onAvatarTap: ((URL) -> Void)? = nil,
|
||||
@ViewBuilder footer: @escaping () -> Footer) {
|
||||
let profile = UserProfileProxy(member: member)
|
||||
let profile = UserProfile(member: member)
|
||||
|
||||
self.init(user: profile,
|
||||
isVerified: isVerified,
|
||||
@@ -99,15 +99,15 @@ struct AvatarHeaderView<Footer: View>: View {
|
||||
footer: footer)
|
||||
}
|
||||
|
||||
init(user: UserProfileProxy,
|
||||
init(user: UserProfile,
|
||||
isVerified: Bool,
|
||||
avatarSize: Avatars.Size,
|
||||
mediaProvider: MediaProviderProtocol? = nil,
|
||||
onAvatarTap: ((URL) -> Void)? = nil,
|
||||
@ViewBuilder footer: @escaping () -> Footer) {
|
||||
avatarInfo = .user(user)
|
||||
title = user.displayName ?? user.userID
|
||||
subtitle = user.displayName == nil ? nil : user.userID
|
||||
title = user.displayName ?? user.id
|
||||
subtitle = user.displayName == nil ? nil : user.id
|
||||
|
||||
self.avatarSize = avatarSize
|
||||
self.mediaProvider = mediaProvider
|
||||
@@ -123,7 +123,7 @@ struct AvatarHeaderView<Footer: View>: View {
|
||||
mediaProvider: MediaProviderProtocol? = nil,
|
||||
onAvatarTap: ((URL) -> Void)? = nil,
|
||||
@ViewBuilder footer: @escaping () -> Footer) {
|
||||
let profile = UserProfileProxy(sender: sender)
|
||||
let profile = UserProfile(sender: sender)
|
||||
|
||||
self.init(user: profile,
|
||||
isVerified: false,
|
||||
@@ -180,8 +180,8 @@ struct AvatarHeaderView<Footer: View>: View {
|
||||
switch avatarInfo {
|
||||
case .room(let roomAvatar):
|
||||
return roomAvatar.hasURL ? L10n.a11yViewAvatar : L10n.a11yAvatar
|
||||
case .user(let userProfileProxy):
|
||||
return userProfileProxy.avatarURL != nil ? L10n.a11yViewAvatar : L10n.a11yAvatar
|
||||
case .user(let userProfile):
|
||||
return userProfile.avatarURL != nil ? L10n.a11yViewAvatar : L10n.a11yAvatar
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ struct AvatarHeaderView<Footer: View>: View {
|
||||
case .user(let userProfile):
|
||||
LoadableAvatarImage(url: userProfile.avatarURL,
|
||||
name: userProfile.displayName,
|
||||
contentID: userProfile.userID,
|
||||
contentID: userProfile.id,
|
||||
avatarSize: avatarSize,
|
||||
mediaProvider: mediaProvider,
|
||||
onTap: onAvatarTap)
|
||||
|
||||
@@ -10,7 +10,7 @@ import Compound
|
||||
import SwiftUI
|
||||
|
||||
struct JoinedMembersBadgeView: View {
|
||||
let heroes: [UserProfileProxy]
|
||||
let heroes: [UserProfile]
|
||||
var shouldHideAvatars = false
|
||||
let joinedCount: Int
|
||||
|
||||
@@ -46,7 +46,7 @@ struct JoinedMembersBadgeView: View {
|
||||
ForEach(heroes.prefix(3).reversed()) { hero in
|
||||
LoadableAvatarImage(url: shouldHideAvatars ? nil : hero.avatarURL,
|
||||
name: hero.displayName,
|
||||
contentID: hero.userID,
|
||||
contentID: hero.id,
|
||||
avatarSize: .user(on: .spaceHeader),
|
||||
mediaProvider: mediaProvider)
|
||||
.mask {
|
||||
|
||||
@@ -69,7 +69,7 @@ struct LocationMarkerView: View {
|
||||
if let userProfile = kind.userProfile {
|
||||
LoadableAvatarImage(url: userProfile.avatarURL,
|
||||
name: userProfile.displayName,
|
||||
contentID: userProfile.userID,
|
||||
contentID: userProfile.id,
|
||||
avatarSize: .user(on: .map),
|
||||
mediaProvider: mediaProvider)
|
||||
.overlay {
|
||||
|
||||
@@ -13,7 +13,7 @@ enum RoomAvatar: Equatable {
|
||||
/// An avatar generated from a Room's details.
|
||||
case room(id: String, name: String?, avatarURL: URL?)
|
||||
/// An avatar generated from a collection of room heroes.
|
||||
case heroes([UserProfileProxy])
|
||||
case heroes([UserProfile])
|
||||
/// An avatar generated from a Space's details.
|
||||
case space(id: String, name: String?, avatarURL: URL?)
|
||||
/// A static avatar for a tombstoned room.
|
||||
@@ -24,7 +24,7 @@ enum RoomAvatar: Equatable {
|
||||
case let .room(id, name, _):
|
||||
.room(id: id, name: name, avatarURL: nil)
|
||||
case let .heroes(users):
|
||||
.heroes(users.map { .init(userID: $0.userID, displayName: $0.displayName, avatarURL: nil) })
|
||||
.heroes(users.map { .init(userID: $0.id, displayName: $0.displayName, avatarURL: nil) })
|
||||
case .space(let id, let name, _):
|
||||
.space(id: id, name: name, avatarURL: nil)
|
||||
case .tombstoned:
|
||||
@@ -76,7 +76,7 @@ struct RoomAvatarImage: View {
|
||||
ZStack {
|
||||
LoadableAvatarImage(url: users[0].avatarURL,
|
||||
name: users[0].displayName,
|
||||
contentID: users[0].userID,
|
||||
contentID: users[0].id,
|
||||
avatarSize: avatarSize,
|
||||
mediaProvider: mediaProvider,
|
||||
onTap: onAvatarTap)
|
||||
@@ -84,7 +84,7 @@ struct RoomAvatarImage: View {
|
||||
|
||||
LoadableAvatarImage(url: users[1].avatarURL,
|
||||
name: users[1].displayName,
|
||||
contentID: users[1].userID,
|
||||
contentID: users[1].id,
|
||||
avatarSize: avatarSize,
|
||||
mediaProvider: mediaProvider,
|
||||
onTap: onAvatarTap)
|
||||
@@ -107,7 +107,7 @@ struct RoomAvatarImage: View {
|
||||
} else {
|
||||
LoadableAvatarImage(url: users[0].avatarURL,
|
||||
name: users[0].displayName,
|
||||
contentID: users[0].userID,
|
||||
contentID: users[0].id,
|
||||
avatarSize: avatarSize,
|
||||
mediaProvider: mediaProvider,
|
||||
onTap: onAvatarTap)
|
||||
|
||||
@@ -11,7 +11,7 @@ import MatrixRustSDK
|
||||
import SwiftUI
|
||||
|
||||
struct UserProfileListRow: View {
|
||||
let user: UserProfileProxy
|
||||
let user: UserProfile
|
||||
let membership: MembershipState?
|
||||
let mediaProvider: MediaProviderProtocol?
|
||||
|
||||
@@ -27,14 +27,14 @@ struct UserProfileListRow: View {
|
||||
if let membershipText = membership?.localizedDescription {
|
||||
return membershipText
|
||||
} else if user.displayName != nil {
|
||||
return user.userID
|
||||
return user.id
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ListRow(label: .avatar(title: user.displayName ?? user.userID,
|
||||
ListRow(label: .avatar(title: user.displayName ?? user.id,
|
||||
description: subtitle,
|
||||
icon: avatar,
|
||||
role: isUnknownProfile ? .error : nil),
|
||||
@@ -44,7 +44,7 @@ struct UserProfileListRow: View {
|
||||
var avatar: LoadableAvatarImage {
|
||||
LoadableAvatarImage(url: user.avatarURL,
|
||||
name: user.displayName,
|
||||
contentID: user.userID,
|
||||
contentID: user.id,
|
||||
avatarSize: .user(on: .startChat),
|
||||
mediaProvider: mediaProvider)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user