77 lines
2.3 KiB
Swift
77 lines
2.3 KiB
Swift
import SwiftUI
|
|
|
|
enum LoadConfigurationStatus: Identifiable, Equatable {
|
|
case missingDetails(count: Int)
|
|
|
|
var id: String {
|
|
switch self {
|
|
case .missingDetails(let count):
|
|
return "missing-details-\(count)"
|
|
}
|
|
}
|
|
|
|
var symbol: String {
|
|
switch self {
|
|
case .missingDetails:
|
|
return "exclamationmark.triangle.fill"
|
|
}
|
|
}
|
|
|
|
var tint: Color {
|
|
switch self {
|
|
case .missingDetails:
|
|
return .orange
|
|
}
|
|
}
|
|
|
|
var bannerText: String {
|
|
switch self {
|
|
case .missingDetails:
|
|
return NSLocalizedString(
|
|
"loads.overview.status.missing_details.banner",
|
|
bundle: .main,
|
|
value: "Finish configuring your loads",
|
|
comment: "Short banner text describing loads that need additional details"
|
|
)
|
|
}
|
|
}
|
|
|
|
func detailInfo() -> LoadStatusDetail {
|
|
switch self {
|
|
case .missingDetails(let count):
|
|
let title = NSLocalizedString(
|
|
"loads.overview.status.missing_details.title",
|
|
bundle: .main,
|
|
value: "Missing load details",
|
|
comment: "Alert title when loads are missing required details"
|
|
)
|
|
let format = NSLocalizedString(
|
|
"loads.overview.status.missing_details.message",
|
|
bundle: .main,
|
|
value: "Enter cable length and wire size for %d %@ to see accurate recommendations.",
|
|
comment: "Alert message when loads are missing required details"
|
|
)
|
|
let loadWord = count == 1
|
|
? NSLocalizedString(
|
|
"loads.overview.status.missing_details.singular",
|
|
bundle: .main,
|
|
value: "load",
|
|
comment: "Singular noun for load"
|
|
)
|
|
: NSLocalizedString(
|
|
"loads.overview.status.missing_details.plural",
|
|
bundle: .main,
|
|
value: "loads",
|
|
comment: "Plural noun for loads"
|
|
)
|
|
let message = String(format: format, count, loadWord)
|
|
return LoadStatusDetail(title: title, message: message)
|
|
}
|
|
}
|
|
}
|
|
|
|
struct LoadStatusDetail {
|
|
let title: String
|
|
let message: String
|
|
}
|