Feature: Kilometerstand-Feld für Fahrräder und verbesserte Warnungen

- currentMileage Feld zu Bike-Modell hinzugefügt
- calculateServiceStatus verwendet jetzt aktuellen Kilometerstand des Fahrrads
- Warnungen für überfällige Wartungen (OVERDUE Status)
- Rote Warnung bei überfälligen Teilen
- Kilometerstand wird in BikeDetail und BikeCard angezeigt
- AlertBadge unterstützt jetzt critical Variante
- Verbesserte Statusanzeige mit Überfällig-Hinweis
This commit is contained in:
Denis Urs Rudolph
2025-12-05 22:36:58 +01:00
parent 81edc206e0
commit d37676f3c0
10 changed files with 134 additions and 44 deletions

View File

@@ -25,8 +25,16 @@ export default function BikeDetail({ bike, onUpdate }: BikeDetailProps) {
</Link>
<div className="bg-white rounded-lg shadow-md p-6 mb-6">
<h1 className="text-3xl font-bold text-gray-900 mb-4">{bike.name}</h1>
<div className="grid grid-cols-2 md:grid-cols-4 gap-4 text-sm">
<div className="flex justify-between items-start mb-4">
<h1 className="text-3xl font-bold text-gray-900">{bike.name}</h1>
<div className="text-right">
<p className="text-sm text-gray-500">Aktueller Kilometerstand</p>
<p className="text-2xl font-bold text-gray-900">
{bike.currentMileage.toLocaleString('de-DE')} km
</p>
</div>
</div>
<div className="grid grid-cols-2 md:grid-cols-3 gap-4 text-sm">
{bike.brand && (
<div>
<span className="text-gray-500">Marke:</span>
@@ -81,7 +89,12 @@ export default function BikeDetail({ bike, onUpdate }: BikeDetailProps) {
</div>
)}
<WearPartList bikeId={bike.id} parts={bike.wearParts} onUpdate={onUpdate} />
<WearPartList
bikeId={bike.id}
parts={bike.wearParts}
bikeCurrentMileage={bike.currentMileage}
onUpdate={onUpdate}
/>
</div>
</main>
)