BlueWallet/ios/WalletInformationWidget/Widgets/Shared/Views/WalletInformationView.swift

60 lines
2.5 KiB
Swift
Raw Normal View History

2020-11-03 23:16:20 -05:00
//
// WalletInformationView.swift
// BlueWallet
//
// Created by Marcos Rodriguez on 11/3/20.
// Copyright © 2020 BlueWallet. All rights reserved.
//
import SwiftUI
import WidgetKit
struct WalletInformationView: View {
var allWalletsBalance: WalletData = emptyWalletData
var marketData: MarketData = emptyMarketData
var formattedBalance: String {
let numberFormatter = NumberFormatter()
numberFormatter.locale = Locale(identifier: WidgetAPI.getUserPreferredCurrencyLocale())
numberFormatter.numberStyle = .currency
let amount = numberFormatter.string(from: NSNumber(value: ((allWalletsBalance.balance / 100000000) * marketData.rate))) ?? ""
return amount
}
var formattedLatestTransactionTime: String {
if allWalletsBalance.latestTransactionTime == 0 {
return "never"
}
let forDate = Date(timeIntervalSince1970: (TimeInterval(allWalletsBalance.latestTransactionTime) / 1000))
let dateFormatter = RelativeDateTimeFormatter()
dateFormatter.locale = Locale(identifier: Locale.current.identifier)
dateFormatter.dateTimeStyle = .numeric
return dateFormatter.localizedString(for: forDate, relativeTo: Date())
}
var body: some View {
VStack(alignment: .leading, spacing:nil , content: {
Text(allWalletsBalance.formattedBalanceBTC).font(Font.system(size: 15, weight: .medium, design: .default)).foregroundColor(.textColorLightGray).lineLimit(1).minimumScaleFactor(0.01)
Text(formattedBalance).lineLimit(1).foregroundColor(.textColor).font(Font.system(size:28, weight: .bold, design: .default)).minimumScaleFactor(0.01)
Spacer()
Text("Latest transaction").font(Font.system(size: 11, weight: .regular, design: .default)).foregroundColor(.textColorLightGray)
Text(formattedLatestTransactionTime).lineLimit(1).foregroundColor(.textColor).font(Font.system(size:13, weight: .regular, design: .default)).minimumScaleFactor(0.01)
}).frame(minWidth: 0,
maxWidth: .infinity,
minHeight: 0,
maxHeight: .infinity,
alignment: .topLeading)
}
}
struct WalletInformationView_Previews: PreviewProvider {
static var previews: some View {
WalletInformationView(allWalletsBalance: WalletData(balance: 10000, latestTransactionTime: 1568804029000), marketData: MarketData(nextBlock: "26", sats: "9 134", price: "$10,000", rate: Double(13000)))
.previewContext(WidgetPreviewContext(family: .systemSmall))
}
}