From a0ea28234f1551241c8ec28372f7e0c1e6d5089f Mon Sep 17 00:00:00 2001 From: Ryan Zhao Date: Mon, 7 Aug 2023 11:32:15 +1000 Subject: [PATCH] wrap profile picture view for swiftui --- .../MessageInfoView.swift | 22 ++++++++++++++----- .../Components/ProfilePictureView.swift | 8 +++---- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Session/Media Viewing & Editing/MessageInfoView.swift b/Session/Media Viewing & Editing/MessageInfoView.swift index 82578fe75..5f059b3d3 100644 --- a/Session/Media Viewing & Editing/MessageInfoView.swift +++ b/Session/Media Viewing & Editing/MessageInfoView.swift @@ -300,16 +300,28 @@ struct MessageInfoView: View { HStack( spacing: 10 ) { - Circle() + let (info, additionalInfo) = ProfilePictureView.getProfilePictureInfo( + size: .message, + publicKey: messageViewModel.authorId, + threadVariant: .contact, // Always show the display picture in 'contact' mode + customImageData: nil, + profile: messageViewModel.profile, + profileIcon: (messageViewModel.isSenderOpenGroupModerator ? .crown : .none) + ) + + if let info: ProfilePictureView.Info = info { + ProfilePictureSwiftUI( + size: .list, + info: info, + additionalInfo: additionalInfo + ) .frame( width: 46, height: 46, alignment: .topLeading ) - .foregroundColor(themeColor: .primary) - // ProfilePictureSwiftUI(size: .message) - - + } + VStack( alignment: .leading, spacing: 4 diff --git a/SessionUIKit/Components/ProfilePictureView.swift b/SessionUIKit/Components/ProfilePictureView.swift index 01db3d50d..abe32a4eb 100644 --- a/SessionUIKit/Components/ProfilePictureView.swift +++ b/SessionUIKit/Components/ProfilePictureView.swift @@ -553,8 +553,8 @@ public final class ProfilePictureView: UIView { import SwiftUI -struct ProfilePictureSwiftUI: UIViewRepresentable { - typealias UIViewType = ProfilePictureView +public struct ProfilePictureSwiftUI: UIViewRepresentable { + public typealias UIViewType = ProfilePictureView var size: ProfilePictureView.Size var info: ProfilePictureView.Info @@ -570,11 +570,11 @@ struct ProfilePictureSwiftUI: UIViewRepresentable { self.additionalInfo = additionalInfo } - func makeUIView(context: Context) -> ProfilePictureView { + public func makeUIView(context: Context) -> ProfilePictureView { ProfilePictureView(size: size) } - func updateUIView(_ profilePictureView: ProfilePictureView, context: Context) { + public func updateUIView(_ profilePictureView: ProfilePictureView, context: Context) { profilePictureView.update( info, additionalInfo: additionalInfo