view Simoleon/Helpers/CurrencyRow.swift @ 17:4a81e39186f1 v1.0

Minor UI changes
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Thu, 15 Jul 2021 20:24:13 +0100
parents aec2e86e5dbd
children 94fd7ac93060
line wrap: on
line source

//
//  CurrencyRow.swift
//  Simoleon
//
//  Created by Dennis Concepción Martín on 15/07/2021.
//

import SwiftUI

struct CurrencyRow: View {
    let currencyMetadata: [String: CurrencyMetadataModel] = parseJson("CurrencyMetadata.json")
    var currency: String
    
    var body: some View {
        let currencies = currency.components(separatedBy: "/")
        let mainCurrency = String(currencies[0])
        let secondaryCurrency = String(currencies[1])
        HStack {
            Image(currencyMetadata[mainCurrency]!.flag)
                .resizable()
                .aspectRatio(contentMode: .fill)
                .frame(width: 30, height: 30)
                .clipShape(Circle())
                .overlay(Circle().stroke(Color(.systemGray), lineWidth: 1))
            
            Image(currencyMetadata[secondaryCurrency]!.flag)
                .resizable()
                .aspectRatio(contentMode: .fill)
                .frame(width: 30, height: 30)
                .clipShape(Circle())
                .overlay(Circle().stroke(Color(.systemGray), lineWidth: 1))
                .offset(x: -20)
                .padding(.trailing, -20)
            
            VStack(alignment: .leading) {
                Text("\(currency)")
                    .fontWeight(.semibold)
                
                Text("\(currencyMetadata[mainCurrency]!.name)/\(currencyMetadata[secondaryCurrency]!.name)")
                    .font(.footnote)
                    .fontWeight(.semibold)
                    .opacity(0.5)
                    .lineLimit(1)
            }
            .padding(.horizontal)
        }
        .padding(.vertical, 7)
    }
}

struct CurrencyRow_Previews: PreviewProvider {
    static var previews: some View {
        CurrencyRow(currency: "USD/GBP")
    }
}