fix(tours): Reload/Neustart behaelt gewaehltes Datum (kein Sprung auf heute)

Der Header-Kalender zeigte nach Neustart/Retry noch 'morgen', geladen wurde
aber 'heute' (leer). Ursache: Initial-Load und diverse Retry-Buttons
dispatchten LoadTour() ohne Datum -> immer heute.

- LoadTour(): reiner Reload, behaelt das gemerkte Datum
- LoadTour.forDate(date): setzt gezielt ein Datum (Kalender + Initial-Load)
- Initial-Load in home.dart liest das Datum aus dem TourDateCubit
- Retry-Buttons (Fail-/Sort-/Loading-Seite) laden dadurch den angezeigten Tag

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dennis Nemec
2026-09-01 16:06:58 +02:00
parent 83d52364a5
commit 633b7631aa
4 changed files with 35 additions and 12 deletions

View File

@ -9,6 +9,7 @@ import 'package:hl_lieferservice/feature/delivery/bloc/phase_bloc.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/phase_event.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/phase_state.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/tour_bloc.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/tour_date_cubit.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/tour_event.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/tour_state.dart';
import 'package:hl_lieferservice/feature/delivery/model/delivery_phase.dart';
@ -52,7 +53,15 @@ class _HomeState extends State<Home> {
// Tour beim ersten Aufbau laden. Account-Filter sitzt jetzt
// serverseitig im JWT — kein Personalnummer-Argument mehr nötig.
context.read<TourBloc>().add(const LoadTour());
//
// Das im Kopf-Kalender gewählte Datum berücksichtigen: bleibt der
// TourDateCubit über einen (Warm-)Neustart bestehen (Header zeigt z. B.
// noch „Morgen"), muss der Initial-Load DENSELBEN Tag laden — sonst
// klaffen Anzeige (Morgen) und geladene Daten (Heute) auseinander.
// `null` = heute (Server entscheidet), also unverändertes Default.
context
.read<TourBloc>()
.add(LoadTour.forDate(context.read<TourDateCubit>().state));
// CarsBloc auch hier triggern: wenn der CarSelectBloc beim App-Start
// eine valide Tages-Auswahl aus den SharedPreferences fand, wurde die

View File

@ -441,7 +441,7 @@ class _SelectedDatePill extends StatelessWidget {
);
if (picked == null || !context.mounted) return;
context.read<TourDateCubit>().pick(picked);
context.read<TourBloc>().add(LoadTour(date: picked));
context.read<TourBloc>().add(LoadTour.forDate(picked));
}
}