fix(phasen): ohne Tour nur erster Schritt aktiv - Stepper sperrt Beladen/Ausliefern
An einem Tag ohne Tour konnte man in der AppBar durch alle Stepper-Schritte navigieren. Ursache: an leeren Tagen gilt der GETEILTE 'no-tour'-Persistenz- Eimer; einmal dort aufgeschlossener Fortschritt (hohes Max) machte an JEDEM leeren Tag Beladen/Ausliefern anklickbar. - Stepper: ohne geladene Tour (TourEmpty/loading) ist maxReached hart der erste sichtbare Schritt -> weitere Schritte nicht anklickbar, keine Haekchen - PhaseBloc._load: ohne Tour ausschliesslich Eintrittsphase, Persistenz wird weder gelesen noch geschrieben (kein Fortschritt im 'no-tour'-Eimer) - PhaseBloc._set: ohne Tour jeden Vorwaerts-Wechsel verwerfen, nichts persistieren - unabhaengig vom ausloesenden Button/Tap Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -125,12 +125,19 @@ class PhaseStepper extends StatelessWidget {
|
||||
final carCount = carsState is CarsLoaded ? carsState.cars.length : 0;
|
||||
final phases = visiblePhases ?? _effectivePhases(carCount);
|
||||
|
||||
// Ohne geladene Tour (Tag ohne Tour / noch ladend) ist ausschließlich
|
||||
// der erste Schritt aktiv: es gibt nichts zu beladen oder auszuliefern,
|
||||
// also dürfen die weiteren Schritte weder anklickbar noch abgehakt
|
||||
// sein — unabhängig davon, was der PhaseBloc als Max kennt.
|
||||
final hasTour = context.watch<TourBloc>().state is TourLoaded;
|
||||
|
||||
// Höchste erreichte Phase aus dem PhaseBloc — bestimmt, welche
|
||||
// Vorwärts-Sprünge erlaubt sind.
|
||||
final phaseBlocState = context.watch<PhaseBloc>().state;
|
||||
final maxReached = phaseBlocState is PhaseReady
|
||||
final blocMax = phaseBlocState is PhaseReady
|
||||
? (phaseBlocState.maxPhaseFor(carId) ?? currentPhase)
|
||||
: currentPhase;
|
||||
final maxReached = hasTour ? blocMax : phases.first;
|
||||
|
||||
return Material(
|
||||
color: theme.primaryColor,
|
||||
|
||||
Reference in New Issue
Block a user