# HG changeset patch # User Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> # Date 1615724677 -3600 # Node ID 083ca8dc34994d78807a27b91604f254886f921d # Parent e8223540f3f354aed561e0d8162693ea7c962701 Remove charts diff -r e8223540f3f3 -r 083ca8dc3499 LazyBear/UI/ChartView.swift --- a/LazyBear/UI/ChartView.swift Sun Mar 14 13:24:25 2021 +0100 +++ b/LazyBear/UI/ChartView.swift Sun Mar 14 13:24:37 2021 +0100 @@ -6,7 +6,6 @@ // import SwiftUI -import Charts struct ChartView: View { var symbol: String @@ -26,39 +25,13 @@ request(url: url, model: [HistoricalPriceModel].self) { self.historicalPrices = $0 } }) - let (colour, prices) = prepareChart() - Chart(data: prices) - .frame(height: chartHeight) - .chartStyle(AreaChartStyle(.quadCurve, fill: - LinearGradient(gradient: .init(colors: [colour.opacity(0.5), colour.opacity(0.2)]), - startPoint: .top, - endPoint: .bottom))) + } .onAppear { let url = getUrl(endpoint: .historicalPrices, symbol: symbol, range: "3m") request(url: url, model: [HistoricalPriceModel].self) { self.historicalPrices = $0 } } } - - private func prepareChart() -> (Color, [Double]) { - if !historicalPrices.isEmpty { - // Historical is been requested and successfully received - let prices = historicalPrices.map { $0.close } // Close prices array (for chart) - // Modify chart colour depending on % change over time - // If it's < 0 -> lost value -> red - var colour: Color = .red - let changeOverTime = historicalPrices.map { $0.changeOverTime }.last - if changeOverTime! >= 0 { - colour = .green - } - - return (colour, normalize(prices)) - } - - // Handle error here after x seconds of requesting. - - return (.blue, [Double]()) - } } struct HistoricalPriceView_Previews: PreviewProvider { diff -r e8223540f3f3 -r 083ca8dc3499 LazyBear/UI/InsiderSummary.swift --- a/LazyBear/UI/InsiderSummary.swift Sun Mar 14 13:24:25 2021 +0100 +++ b/LazyBear/UI/InsiderSummary.swift Sun Mar 14 13:24:37 2021 +0100 @@ -6,66 +6,28 @@ // import SwiftUI -import SwiftUICharts struct InsiderSummary: View { var symbol: String - @State private var dataPoints = [DataPoint]() - @FetchRequest(entity: UserSettings.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \UserSettings.changedAt, ascending: false)]) var userSettings: FetchedResults var body: some View { VStack(alignment: .leading) { - if !dataPoints.isEmpty { - HStack { - Image(systemName: "star.fill") - .renderingMode(.original) - .imageScale(.large) - - Text("Top insiders") - .font(.title2) - .fontWeight(.semibold) - - Spacer() - } - } - - HorizontalBarChartView(dataPoints: dataPoints) - } - .padding() - .onAppear { - // Empty array in case there is data already - if !dataPoints.isEmpty { - self.dataPoints = [DataPoint]() + HStack { + Image(systemName: "star.fill") + .renderingMode(.original) + .imageScale(.large) + + Text("Top insiders") + .font(.title2) + .fontWeight(.semibold) + + Spacer() } - generateChart() } - } - - private func generateChart() { - let url = getUrl(endpoint: .insiderSummary, symbol: symbol) - request(url: url, model: [TopInsiderModel].self) { topInsiders in - let theme = userSettings.first?.theme?.lowercased() ?? "default" - // Loop over the response - var insiderNumber = 0 - for insider in topInsiders { - insiderNumber += 1 - if insiderNumber < 5 { - if let net = insider.position { - let index = topInsiders.firstIndex(of: insider) // Get number (indice) of the item in the list - let rowNumber = index! % 5 // Get row color name - let color = Color("\(theme)Row\(rowNumber)") // Define color - let label = LocalizedStringKey(insider.entityName.capitalized) // Define label - let legend = Legend(color: color, label: label) // Define legend SwiftUICharts - let dataPoint = DataPoint(value: Double(net), label: LocalizedStringKey(String(net)), legend: legend) - - dataPoints.append(dataPoint) - } - } - } - } + .padding() } }