view lazybear/Supply views/WatchlistRow.swift @ 88:2704750d35a0

CloudKit implemented for logo api
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Wed, 27 Jan 2021 21:42:55 +0100
parents 104b643a8807
children 76b4a3be4d46
line wrap: on
line source

//
//  WatchlistRow.swift
//  LazyBear
//
//  Created by Dennis Concepción Martín on 25/1/21.
//

import SwiftUI
import CoreData
import SDWebImageSwiftUI

struct WatchlistRow: View {
    @ObservedObject var companyView = CompanyView()
    var company: WatchlistCompany
    var url: String
    
    var body: some View {
        Button(action: { companyView.isShowing.toggle() }) {
            HStack {
                let path = LogoApi.URL.company(symbol: company.symbol!).path
                let endpoint = url + path
                WebImage(url: URL(string: endpoint))
                    .resizable()
                    .placeholder { Rectangle().foregroundColor(.gray) }
                    .indicator(.activity) // Activity Indicator
                    .modifier(LogoModifier())
                
                VStack(alignment: .leading) {
                    Text(company.symbol!.uppercased())
                        .fontWeight(.semibold)
                    
                    Text(company.name!.capitalized)
                        .font(.caption)
                }
            }
        }
    }
}

struct WatchlistRow_Previews: PreviewProvider {
    // Avoid preview crashing
    static let moc = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
    
    static var previews: some View {
        let watchlistCompany = WatchlistCompany(context: moc)
        watchlistCompany.name = "apple inc"
        watchlistCompany.symbol = "aapl"
        return WatchlistRow(company: watchlistCompany, url: "")
    }
}