feat(header): Datumswahl im Kopf statt Fahrzeug-Pille
Neue Kalender-Pille im Phase-Stepper: zeigt das Tour-Datum und oeffnet einen
Datepicker, um die Tour eines anderen Tages zu laden (z. B. morgen vorab).
Fahrzeugwechsel bleibt ueber den Drawer erreichbar.
- TourDateCubit haelt das gewaehlte Datum (null = heute, Server autoritativ)
- LoadTour({date}) + TourBloc merkt das Datum (RefreshTour laedt denselben Tag)
- Repository getMyTourDetails({date}) -> API listMyTours(date:) -> GET /me/tours?date=
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
22
lib/feature/delivery/bloc/tour_date_cubit.dart
Normal file
22
lib/feature/delivery/bloc/tour_date_cubit.dart
Normal file
@ -0,0 +1,22 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
/// Hält das im Kopf-Kalender aktiv gewählte Tour-Datum.
|
||||
///
|
||||
/// State `null` bedeutet **„heute"** — und zwar autoritativ vom Server
|
||||
/// entschieden (die App-Uhr ist nicht vertrauenswürdig; siehe Backend
|
||||
/// `ListMyToursTodayUseCase`). Erst wenn der Fahrer im Header bewusst ein
|
||||
/// Datum wählt, trägt der Cubit ein konkretes Datum.
|
||||
///
|
||||
/// Bewusst getrennt vom `TourBloc`: das gewählte Datum muss auch dann bekannt
|
||||
/// sein, wenn für den Tag gar keine Tour existiert (`TourEmpty` trägt kein
|
||||
/// `tour.date`), damit der Header trotzdem das richtige Datum anzeigt.
|
||||
class TourDateCubit extends Cubit<DateTime?> {
|
||||
TourDateCubit() : super(null);
|
||||
|
||||
/// Wählt ein konkretes Datum. Nur die Tageskomponente zählt — Uhrzeit wird
|
||||
/// verworfen, damit Vergleiche/Anzeige stabil bleiben.
|
||||
void pick(DateTime date) => emit(DateTime(date.year, date.month, date.day));
|
||||
|
||||
/// Zurück auf „heute" (Server-Default).
|
||||
void reset() => emit(null);
|
||||
}
|
||||
Reference in New Issue
Block a user