fix(phasen): Tageswechsel laedt Phasen-Stand der neuen Tour (Reset), alter Tag bleibt

Beim Datumswechsel im Kopf-Kalender blieben Beladen/Ausliefern des alten
Tags 'erledigt': PhaseBloc._load brach bei bereits geladenem Auto ab und
Home stiess den Load nur einmal pro Auto an - der In-Memory-Stand wurde
beim Tour-/Token-Wechsel nie invalidiert. Die Persistenz ist bereits pro
Tour-Token (syncedAt) getrennt, nur das Nachladen fehlte.

- PhaseBloc: Guard tokenbewusst (_loadedTokenByCar); anderer Token laedt den
  persistierten Stand der neuen Tour nach (neuer Tag -> Eintrittsphase,
  Rueckkehr -> alter Stand wiederhergestellt)
- Home._ensurePhaseLoaded: Guard auf carId|tourToken statt nur carId
- Token-Ableitung zentral als TourState.phaseToken (tour_state.dart), genutzt
  von tourTokenResolver (app.dart) UND Home - eine Quelle statt Duplikat

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dennis Nemec
2026-09-09 01:14:56 +02:00
parent c5219343a0
commit 7c6f99dda1
4 changed files with 56 additions and 16 deletions

View File

@ -104,14 +104,10 @@ class _DeliveryAppState extends State<DeliveryApp> {
// Tour-Version (Tour.syncedAt). Ein erneuter Sync/Seed
// schreibt eine neue syncedAt → neuer Token → frische
// Phasen, ohne dass alte lokale Häkchen hängen bleiben.
tourTokenResolver: () {
final tourState = context.read<TourBloc>().state;
return tourState is TourLoaded
? tourState.details.tour.syncedAt
.millisecondsSinceEpoch
.toString()
: null;
},
// Ableitung zentral in `TourStatePhaseToken` (tour_state.dart),
// dieselbe Quelle wie `Home._ensurePhaseLoaded`.
tourTokenResolver: () =>
context.read<TourBloc>().state.phaseToken,
),
),
BlocProvider(