EventProfile.swift (1893B)
1 // 2 // EventProfile.swift 3 // damus 4 // 5 // Created by William Casarin on 2023-01-23. 6 // 7 8 import SwiftUI 9 10 func eventview_pfp_size(_ size: EventViewKind) -> CGFloat { 11 switch size { 12 case .small: 13 return PFP_SIZE * 0.5 14 case .normal: 15 return PFP_SIZE 16 case .selected: 17 return PFP_SIZE 18 case .title: 19 return PFP_SIZE 20 case .subheadline: 21 return PFP_SIZE * 0.5 22 } 23 } 24 25 struct EventProfile: View { 26 let damus_state: DamusState 27 let pubkey: Pubkey 28 let size: EventViewKind 29 30 var pfp_size: CGFloat { 31 eventview_pfp_size(size) 32 } 33 34 var disable_animation: Bool { 35 damus_state.settings.disable_animation 36 } 37 38 var body: some View { 39 HStack(alignment: .center, spacing: 10) { 40 ProfilePicView(pubkey: pubkey, size: pfp_size, highlight: .none, profiles: damus_state.profiles, disable_animation: disable_animation, show_zappability: true) 41 .onTapGesture { 42 show_profile_action_sheet_if_enabled(damus_state: damus_state, pubkey: pubkey) 43 } 44 .onLongPressGesture(minimumDuration: 0.1) { 45 UIImpactFeedbackGenerator(style: .medium).impactOccurred() 46 damus_state.nav.push(route: Route.ProfileByKey(pubkey: pubkey)) 47 } 48 49 VStack(alignment: .leading, spacing: 0) { 50 EventProfileName(pubkey: pubkey, damus: damus_state, size: size) 51 52 UserStatusView(status: damus_state.profiles.profile_data(pubkey).status, show_general: damus_state.settings.show_general_statuses, show_music: damus_state.settings.show_music_statuses) 53 } 54 } 55 } 56 } 57 58 struct EventProfile_Previews: PreviewProvider { 59 static var previews: some View { 60 EventProfile(damus_state: test_damus_state, pubkey: test_note.pubkey, size: .normal) 61 } 62 }