comparison LazyBear/Views/Company/CompanyView.swift @ 443:ffbb1dbab531

InsiderRosterHelper implemented
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Mon, 21 Jun 2021 20:17:46 +0200
parents 6eae10397501
children 428109b1e3f0
comparison
equal deleted inserted replaced
442:6eae10397501 443:ffbb1dbab531
14 var ranges = ["1D", "5D", "1M", "3M", "6M", "1Y", "5Y"] /// DatePicker ranges 14 var ranges = ["1D", "5D", "1M", "3M", "6M", "1Y", "5Y"] /// DatePicker ranges
15 @State private var selectedRange = "3M" /// Selected DatePicker range 15 @State private var selectedRange = "3M" /// Selected DatePicker range
16 16
17 var body: some View { 17 var body: some View {
18 if company.showView { 18 if company.showView {
19 NavigationView { 19 ScrollView(showsIndicators: false) {
20 ScrollView { 20 VStack {
21 VStack { 21 HStack {
22 HStack { 22 Text(name.capitalized)
23 Text(name.capitalized) 23 .font(.title)
24 .font(.title) 24 .fontWeight(.semibold)
25 .fontWeight(.semibold) 25 .lineLimit(1)
26 .lineLimit(1)
27
28 Spacer()
29 }
30 .padding(.horizontal)
31 26
32 Picker("Select a range", selection: $selectedRange) { 27 Spacer()
33 ForEach(ranges, id: \.self) { 28 }
34 Text($0) 29 .padding(.horizontal)
35 } 30
36 } 31 Picker("Select a range", selection: $selectedRange) {
37 .pickerStyle(SegmentedPickerStyle()) 32 ForEach(ranges, id: \.self) {
38 .padding(.horizontal) 33 Text($0)
39 .onChange(of: selectedRange, perform: { range in
40 let url = "https://api.lazybear.app/company/symbol=\(symbol)/type=refresh/range=\(range.lowercased())"
41 company.request(url, .refresh)
42 })
43
44 ChartHelper(company: company)
45 KeyStatsHelper(keyStats: company.data.keyStats)
46 if let latestNews = company.data.latestNews {
47 NewsHelper(latestNews: latestNews)
48 .padding([.horizontal, .bottom])
49 } 34 }
50 } 35 }
36 .pickerStyle(SegmentedPickerStyle())
37 .padding(.horizontal)
38 .onChange(of: selectedRange, perform: { range in
39 let url = "https://api.lazybear.app/company/symbol=\(symbol)/type=refresh/range=\(range.lowercased())"
40 company.request(url, .refresh)
41 })
42
43 ChartHelper(company: company)
44 KeyStatsHelper(keyStats: company.data.keyStats)
45 if let latestNews = company.data.latestNews {
46 NewsHelper(latestNews: latestNews)
47 .padding([.horizontal, .bottom])
48 }
49
50 if let insiderRoster = company.data.insiderRoster {
51 InsiderRosterHelper(insiderRoster: insiderRoster)
52 .padding([.horizontal, .bottom])
53 }
51 } 54 }
52 .background(Color("customBackground").edgesIgnoringSafeArea(.all))
53 .navigationTitle(symbol.uppercased())
54 } 55 }
56 .background(Color("customBackground").edgesIgnoringSafeArea(.all))
55 } else { 57 } else {
56 ProgressView() 58 ProgressView()
57 .onAppear { 59 .onAppear {
58 company.request("https://api.lazybear.app/company/symbol=aapl", .initial) 60 company.request("https://api.lazybear.app/company/symbol=\(symbol)", .initial)
59 } 61 }
60 } 62 }
61 } 63 }
62 } 64 }
63 65