iOS: Am Ablauftag 'heute' statt '0 Tage'

Die Uebersichtskarte 'Bald ablaufend' zeigte am Ablauftag '0 Tage'.
Jetzt gemeinsame Formulierung auf ExpiringItem.restlaufzeitText:
abgelaufen / heute / morgen / X Tage - Karte und volle Liste identisch.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-08-02 16:40:29 +02:00
parent 6ddf6024f7
commit 63ee9608af
3 changed files with 11 additions and 7 deletions

View File

@@ -295,7 +295,7 @@ struct ExpiryCard: View {
.font(.caption2).foregroundStyle(.secondary) .font(.caption2).foregroundStyle(.secondary)
} }
Spacer() Spacer()
Text(item.daysLeft < 0 ? "abgelaufen" : "\(item.daysLeft) Tage") Text(item.restlaufzeitText)
.font(.caption).bold() .font(.caption).bold()
.foregroundStyle(item.daysLeft < 0 ? .red : .orange) .foregroundStyle(item.daysLeft < 0 ? .red : .orange)
} }

View File

@@ -146,7 +146,7 @@ struct ExpiringView: View {
.font(.caption).foregroundStyle(.secondary) .font(.caption).foregroundStyle(.secondary)
} }
Spacer() Spacer()
Text(restText(item.daysLeft)) Text(item.restlaufzeitText)
.font(.caption).bold() .font(.caption).bold()
.foregroundStyle(item.daysLeft < 0 ? .red : .orange) .foregroundStyle(item.daysLeft < 0 ? .red : .orange)
} }
@@ -181,11 +181,6 @@ struct ExpiringView: View {
return "\(formatAmount(item.quantity / faktor)) \(item.unitName)" return "\(formatAmount(item.quantity / faktor)) \(item.unitName)"
} }
private func restText(_ days: Int) -> String {
if days < 0 { return "abgelaufen" }
if days == 0 { return "heute" }
return days == 1 ? "1 Tag" : "\(days) Tage"
}
} }
// MARK: - Mindestbestände // MARK: - Mindestbestände

View File

@@ -504,6 +504,15 @@ struct ExpiringItem: Codable, Identifiable {
var id: Int { lotId } var id: Int { lotId }
/// Restlaufzeit als kurzer Text. 0 Tage" ergibt keinen Sinn - am Ablauftag
/// selbst steht heute". Karte und Liste nutzen dieselbe Formulierung.
var restlaufzeitText: String {
if daysLeft < 0 { return "abgelaufen" }
if daysLeft == 0 { return "heute" }
if daysLeft == 1 { return "morgen" }
return "\(daysLeft) Tage"
}
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case quantity case quantity
case lotId = "lot_id" case lotId = "lot_id"