Mercurial > public > lazybear
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 |