|
|
|
// Copyright © 2018 Stormbird PTE. LTD.
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
|
|
|
|
struct TokenCardRowViewModel {
|
|
|
|
var tokenHolder: TokenHolder?
|
|
|
|
|
|
|
|
var backgroundColor: UIColor {
|
|
|
|
return Colors.appWhite
|
|
|
|
}
|
|
|
|
|
|
|
|
var contentsBackgroundColor: UIColor {
|
|
|
|
return Colors.appWhite
|
|
|
|
}
|
|
|
|
|
|
|
|
var titleColor: UIColor {
|
|
|
|
return Colors.appText
|
|
|
|
}
|
|
|
|
|
|
|
|
var countColor: UIColor {
|
|
|
|
return Colors.appHighlightGreen
|
|
|
|
}
|
|
|
|
|
|
|
|
var subtitleColor: UIColor {
|
|
|
|
return UIColor(red: 112, green: 112, blue: 112)
|
|
|
|
}
|
|
|
|
|
|
|
|
var iconsColor: UIColor {
|
|
|
|
return Colors.appBackground
|
|
|
|
}
|
|
|
|
|
|
|
|
var tokenCountFont: UIFont {
|
|
|
|
return Fonts.bold(size: 21)!
|
|
|
|
}
|
|
|
|
|
|
|
|
var titleFont: UIFont {
|
|
|
|
return Fonts.light(size: 21)!
|
|
|
|
}
|
|
|
|
|
|
|
|
var venueFont: UIFont {
|
|
|
|
return Fonts.light(size: 16)!
|
|
|
|
}
|
|
|
|
|
|
|
|
var stateBackgroundColor: UIColor {
|
|
|
|
return UIColor(red: 151, green: 151, blue: 151)
|
|
|
|
}
|
|
|
|
|
|
|
|
var stateColor: UIColor {
|
|
|
|
return .white
|
|
|
|
}
|
|
|
|
|
|
|
|
var subtitleFont: UIFont {
|
|
|
|
if ScreenChecker().isNarrowScreen() {
|
|
|
|
return Fonts.semibold(size: 12)!
|
|
|
|
} else {
|
|
|
|
return Fonts.semibold(size: 15)!
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var detailsFont: UIFont {
|
|
|
|
return Fonts.light(size: 16)!
|
|
|
|
}
|
|
|
|
|
|
|
|
var tokenCount: String {
|
|
|
|
guard let tokenHolder = tokenHolder else { return "" }
|
|
|
|
return "x\(tokenHolder.tokens.count)"
|
|
|
|
}
|
|
|
|
|
|
|
|
var city: String {
|
|
|
|
guard let tokenHolder = tokenHolder else { return "" }
|
|
|
|
let value = tokenHolder.values["locality"] ?? "N/A"
|
|
|
|
return ", \(value)"
|
|
|
|
}
|
|
|
|
|
|
|
|
var category: String {
|
|
|
|
guard let tokenHolder = tokenHolder else { return "" }
|
|
|
|
return tokenHolder.values["category"] as? String ?? "N/A"
|
|
|
|
}
|
|
|
|
|
|
|
|
var teams: String {
|
|
|
|
guard let tokenHolder = tokenHolder else { return "" }
|
|
|
|
let countryA = tokenHolder.values["countryA"] as? String ?? ""
|
|
|
|
let countryB = tokenHolder.values["countryB"] as? String ?? ""
|
|
|
|
return R.string.localizable.aWalletTokenMatchVs(countryA, countryB)
|
|
|
|
}
|
|
|
|
|
|
|
|
var match: String {
|
|
|
|
guard let tokenHolder = tokenHolder else { return "" }
|
|
|
|
let value = tokenHolder.values["match"] as? Int ?? 0
|
|
|
|
return "M\(value)"
|
|
|
|
}
|
|
|
|
|
|
|
|
var venue: String {
|
|
|
|
guard let tokenHolder = tokenHolder else { return "" }
|
|
|
|
return tokenHolder.values["venue"] as? String ?? "N/A"
|
|
|
|
}
|
|
|
|
|
|
|
|
var date: String {
|
|
|
|
guard let tokenHolder = tokenHolder else { return "" }
|
|
|
|
let value = tokenHolder.values["time"] as? GeneralisedTime ?? GeneralisedTime()
|
|
|
|
return value.formatAsShortDateString()
|
|
|
|
}
|
|
|
|
|
|
|
|
var time: String {
|
|
|
|
guard let tokenHolder = tokenHolder else { return "" }
|
|
|
|
let value = tokenHolder.values["time"] as? GeneralisedTime ?? GeneralisedTime()
|
|
|
|
return value.format("h:mm a")
|
|
|
|
}
|
|
|
|
}
|