Files
damus/damus/Features/Events/Components/EventTop.swift
ericholguin b8c664d354 Damus Live
This PR adds Live Streaming and Live Chat to Damus via Damus Labs.

Changelog-Added: Added live stream timeline
Changelog-Added: Added live chat timeline
Changelog-Added: Added ability to create live chat event
Changelog-Added: Damus Labs Toggle

Signed-off-by: ericholguin <ericholguin@apache.org>
2025-11-14 15:36:43 -08:00

52 lines
1.4 KiB
Swift

//
// EventTop.swift
// damus
//
// Created by William Casarin on 2023-06-01.
//
import SwiftUI
@MainActor
struct EventTop: View {
let state: DamusState
let event: NostrEvent
let pubkey: Pubkey
let is_anon: Bool
let size: EventViewKind
let options: EventViewOptions
init(state: DamusState, event: NostrEvent, pubkey: Pubkey, is_anon: Bool, size: EventViewKind, options: EventViewOptions) {
self.state = state
self.event = event
self.pubkey = pubkey
self.is_anon = is_anon
self.size = size
self.options = options
}
func ProfileName(is_anon: Bool) -> some View {
let pk = is_anon ? ANON_PUBKEY : self.pubkey
return EventProfileName(pubkey: pk, damus: state, size: size)
}
var body: some View {
HStack(alignment: .center, spacing: 0) {
ProfileName(is_anon: is_anon)
TimeDot()
RelativeTime(time: state.events.get_cache_data(event.id).relative_time, size: size, font_size: state.settings.font_size)
Spacer()
if !options.contains(.no_context_menu) {
EventMenuContext(damus: state, event: event)
}
}
.lineLimit(1)
}
}
struct EventTop_Previews: PreviewProvider {
static var previews: some View {
EventTop(state: test_damus_state, event: test_note, pubkey: test_note.pubkey, is_anon: false, size: .normal, options: [])
}
}