Mercurial > public > lazybear
view LazyBear/Views/Company/CompanyView.swift @ 442:6eae10397501
Implementing NewsHelper in CompanyView
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Mon, 21 Jun 2021 13:28:45 +0200 |
parents | 417148200aaf |
children | ffbb1dbab531 |
line wrap: on
line source
// // CompanyView.swift // LazyBear // // Created by Dennis Concepción Martín on 20/6/21. // import SwiftUI struct CompanyView: View { var symbol: String var name: String @ObservedObject var company = Company() var ranges = ["1D", "5D", "1M", "3M", "6M", "1Y", "5Y"] /// DatePicker ranges @State private var selectedRange = "3M" /// Selected DatePicker range var body: some View { if company.showView { NavigationView { ScrollView { VStack { HStack { Text(name.capitalized) .font(.title) .fontWeight(.semibold) .lineLimit(1) Spacer() } .padding(.horizontal) Picker("Select a range", selection: $selectedRange) { ForEach(ranges, id: \.self) { Text($0) } } .pickerStyle(SegmentedPickerStyle()) .padding(.horizontal) .onChange(of: selectedRange, perform: { range in let url = "https://api.lazybear.app/company/symbol=\(symbol)/type=refresh/range=\(range.lowercased())" company.request(url, .refresh) }) ChartHelper(company: company) KeyStatsHelper(keyStats: company.data.keyStats) if let latestNews = company.data.latestNews { NewsHelper(latestNews: latestNews) .padding([.horizontal, .bottom]) } } } .background(Color("customBackground").edgesIgnoringSafeArea(.all)) .navigationTitle(symbol.uppercased()) } } else { ProgressView() .onAppear { company.request("https://api.lazybear.app/company/symbol=aapl", .initial) } } } } struct CompanyView_Previews: PreviewProvider { static var previews: some View { CompanyView(symbol: "aapl", name: "apple inc") } }