damus

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

LoadMoreButton.swift (1354B)


      1 //
      2 //  LoadMoreButton.swift
      3 //  damus
      4 //
      5 //  Created by William Casarin on 2023-02-20.
      6 //
      7 
      8 import SwiftUI
      9 
     10 struct LoadMoreButton: View {
     11     @ObservedObject var events: EventHolder
     12     let scroller: ScrollViewProxy?
     13     
     14     func click() {
     15         events.flush()
     16         guard let ev = events.events.first, let scroller else {
     17             return
     18         }
     19         scroll_to_event(scroller: scroller, id: ev.id, delay: 0.1, animate: true)
     20     }
     21     
     22     var body: some View {
     23         Group {
     24             if events.queued > 0 {
     25                 Button(action: click) {
     26                     Text("Load \(events.queued) more", comment: "Button text for loading more events, where the variable is the number of events.")
     27                 }
     28                 .font(.system(size: 14, weight: .bold))
     29                 .padding(10)
     30                 .frame(height: 30)
     31                 .foregroundColor(.white)
     32                 .background(LINEAR_GRADIENT)
     33                 .clipShape(Capsule())
     34             } else {
     35                 EmptyView()
     36             }
     37         }
     38     }
     39 }
     40 
     41 struct LoadMoreButton_Previews: PreviewProvider {
     42     @StateObject static var events: EventHolder = test_event_holder
     43     
     44     static var previews: some View {
     45         LoadMoreButton(events: events, scroller: nil)
     46     }
     47 }
     48 
     49 
     50 let test_event_holder = EventHolder(events: [], incoming: [test_event])