damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

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 }