ZapsView.swift (1189B)
1 // 2 // ZapsView.swift 3 // damus 4 // 5 // Created by William Casarin on 2023-02-10. 6 // 7 8 import SwiftUI 9 10 struct ZapsView: View { 11 let state: DamusState 12 var model: ZapsModel 13 14 @ObservedObject var zaps: ZapsDataModel 15 16 init(state: DamusState, target: ZapTarget) { 17 self.state = state 18 self.model = ZapsModel(state: state, target: target) 19 self._zaps = ObservedObject(wrappedValue: state.events.get_cache_data(NoteId(target.id)).zaps_model) 20 } 21 22 var body: some View { 23 ScrollView { 24 LazyVStack { 25 ForEach(zaps.zaps, id: \.request.ev.id) { zap in 26 ZapEvent(damus: state, zap: zap, is_top_zap: false) 27 .padding([.horizontal]) 28 } 29 } 30 } 31 .navigationBarTitle(NSLocalizedString("Zaps", comment: "Navigation bar title for the Zaps view.")) 32 .onAppear { 33 model.subscribe() 34 } 35 .onDisappear { 36 model.unsubscribe() 37 } 38 } 39 } 40 41 struct ZapsView_Previews: PreviewProvider { 42 static var previews: some View { 43 ZapsView(state: test_damus_state, target: .profile(test_pubkey)) 44 } 45 }