view Sources/StockCharts/LineChart/Helpers/ChartLabel.swift @ 116:5057c45046c1

Add default initializers
author Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
date Mon, 09 Aug 2021 16:32:45 +0100
parents f53d8b9ca92b
children
line wrap: on
line source

//
//  ChartLabel.swift
//  StockCharts
//
//  Created by Dennis Concepción Martín on 30/4/21.
//

import SwiftUI

public struct ChartLabel: View {
    public var lineChartController: LineChartController
    
    @Binding var indexPosition: Int  // Data point position
    
    public var body: some View {
        HStack {
            if let dates = lineChartController.dates {
                let date = formatStringDate(dates[indexPosition])
                Text(date)
                    .opacity(0.5)
            }
            
            if let hours = lineChartController.hours {
                let hour = hours[indexPosition]
                Text(hour)
                    .opacity(0.5)
            }
            
            Text("\(lineChartController.prices[indexPosition], specifier: "%.2f")")
                .foregroundColor(lineChartController.labelColor)
        }
    }
    
    /*
     Take string in format yy-MM-dd (2021-01-01) and transform it
     to long default string format
     */
    public func formatStringDate(_ stringDate: String) -> String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yy-MM-dd"
        let date = dateFormatter.date(from: stringDate)
        
        // Format date to the final format
        dateFormatter.dateStyle = .long
        let finalDate = dateFormatter.string(from: date!)
        
        return finalDate
    }
}