Mercurial > public > lazybear
view LazyBearWatchOS Extension/Views/WatchOSCompanyView.swift @ 460:57471e7bcf08
Testing ComplicationsView
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Sat, 03 Jul 2021 15:51:54 +0100 |
parents | b560babcd5ed |
children |
line wrap: on
line source
// // WatchOSCompanyView.swift // LazyBearWatchOS Extension // // Created by Dennis Concepción Martín on 27/06/2021. // import SwiftUI struct WatchOSCompanyView: View { var symbol: String @ObservedObject var company = Company() @State private var timer = Timer.publish(every: 10, on: .main, in: .common).autoconnect() /// Set recurrent price request var body: some View { if company.showView { ScrollView { VStack(alignment: .leading) { Text(symbol) .fontWeight(.semibold) WatchOSChartHelper(company: company) .padding(.bottom) NavigationLink("Latest news", destination: WatchOSNewsList(latestNews: company.data.latestNews).navigationTitle("Latest news")) Text("Real-time data") .font(.footnote) .opacity(0.7) .padding(.top) } .onAppear { self.timer = Timer.publish(every: 10, on: .main, in: .common).autoconnect() } /// Start timer .onDisappear { self.timer.upstream.connect().cancel() } /// Stop timer .onReceive(timer) { _ in company.request("https://api.lazybear.app/company/symbol=\(symbol)/type=initial/range=5d", .streaming) } } } else { ProgressView() .onAppear { company.request("https://api.lazybear.app/company/symbol=\(symbol)/type=initial/range=5d/watch=true", .initial) } } } } struct WatchOSCompanyView_Previews: PreviewProvider { static var previews: some View { WatchOSCompanyView(symbol: "AAPL") .navigationTitle("Apple Inc") } }