Files
damus/damus/Features/Events/EventProfile.swift
T
Daniel D’Aquino a09e22df24 Improve streaming interfaces and profile loading logic
Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
2025-09-24 14:06:11 -07:00

63 lines
1.9 KiB
Swift

//
// EventProfile.swift
// damus
//
// Created by William Casarin on 2023-01-23.
//
import SwiftUI
func eventview_pfp_size(_ size: EventViewKind) -> CGFloat {
switch size {
case .small:
return PFP_SIZE * 0.5
case .normal:
return PFP_SIZE
case .selected:
return PFP_SIZE
case .title:
return PFP_SIZE
case .subheadline:
return PFP_SIZE * 0.5
}
}
struct EventProfile: View {
let damus_state: DamusState
let pubkey: Pubkey
let size: EventViewKind
var pfp_size: CGFloat {
eventview_pfp_size(size)
}
var disable_animation: Bool {
damus_state.settings.disable_animation
}
var body: some View {
HStack(alignment: .center, spacing: 10) {
ProfilePicView(pubkey: pubkey, size: pfp_size, highlight: .none, profiles: damus_state.profiles, disable_animation: disable_animation, show_zappability: true, damusState: damus_state)
.onTapGesture {
show_profile_action_sheet_if_enabled(damus_state: damus_state, pubkey: pubkey)
}
.onLongPressGesture(minimumDuration: 0.1) {
UIImpactFeedbackGenerator(style: .medium).impactOccurred()
damus_state.nav.push(route: Route.ProfileByKey(pubkey: pubkey))
}
VStack(alignment: .leading, spacing: 0) {
EventProfileName(pubkey: pubkey, damus: damus_state, size: size)
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)
}
}
}
}
struct EventProfile_Previews: PreviewProvider {
static var previews: some View {
EventProfile(damus_state: test_damus_state, pubkey: test_note.pubkey, size: .normal)
}
}