Added separate car loaded event

This commit is contained in:
Dennis Nemec
2026-01-09 13:02:15 +01:00
parent c2f574014a
commit da0f77e35d
3 changed files with 43 additions and 15 deletions

View File

@ -58,17 +58,10 @@ class _CarManagementPageState extends State<CarManagementPage> {
listener: (context, state) {
if (state is CarsLoaded &&
context.read<TourBloc>().state is TourLoaded) {
var tour =
(context.read<TourBloc>().state as TourLoaded).tour.copyWith();
tour.driver.cars = state.cars;
context.read<TourBloc>().add(
TourUpdated(tour: tour, payments: tour.paymentMethods),
);
context.read<TourBloc>().add(CarsLoadedEvent(cars: state.cars));
}
},
builder: (context, state) {
debugPrint('BlocBuilder rebuilding with state: $state');
if (state is CarsLoading) {
return Center(child: const CircularProgressIndicator());
}

View File

@ -54,6 +54,7 @@ class TourBloc extends Bloc<TourEvent, TourState> {
on<RequestDeliveryDistanceEvent>(_calculateDistances);
on<RequestSortingInformationEvent>(_requestSortingInformation);
on<ReorderDeliveryEvent>(_reorderDelivery);
on<CarsLoadedEvent>(_carsLoaded);
}
@override
@ -63,6 +64,14 @@ class TourBloc extends Bloc<TourEvent, TourState> {
return super.close();
}
void _carsLoaded(CarsLoadedEvent event, Emitter<TourState> emit) {
final currentState = state;
if (currentState is TourLoaded) {
currentState.tour.driver.cars = event.cars;
emit(currentState.copyWith());
}
}
void _reorderDelivery(
ReorderDeliveryEvent event,
Emitter<TourState> emit,

View File

@ -1,5 +1,6 @@
import 'dart:typed_data';
import 'package:hl_lieferservice/model/car.dart';
import 'package:hl_lieferservice/model/tour.dart';
import '../../../../model/delivery.dart';
@ -24,7 +25,11 @@ class RequestSortingInformationEvent extends TourEvent {
List<Payment> payments;
Map<String, double>? distances;
RequestSortingInformationEvent({required this.tour, required this.payments, this.distances});
RequestSortingInformationEvent({
required this.tour,
required this.payments,
this.distances,
});
}
class ReorderDeliveryEvent extends TourEvent {
@ -65,11 +70,19 @@ class IncrementArticleScanAmount extends TourEvent {
String deliveryId;
String carId;
IncrementArticleScanAmount({required this.internalArticleId, required this.deliveryId, required this.carId});
IncrementArticleScanAmount({
required this.internalArticleId,
required this.deliveryId,
required this.carId,
});
}
class ScanArticleEvent extends TourEvent {
ScanArticleEvent({required this.articleNumber, required this.carId, required this.deliveryId});
ScanArticleEvent({
required this.articleNumber,
required this.carId,
required this.deliveryId,
});
String articleNumber;
String deliveryId;
@ -105,7 +118,7 @@ class UnscanArticleEvent extends TourEvent {
required this.articleId,
required this.newAmount,
required this.reason,
required this.deliveryId
required this.deliveryId,
});
String articleId;
@ -151,8 +164,18 @@ class UpdateDiscountEvent extends TourEvent {
int? value;
}
class CarsLoadedEvent extends TourEvent {
List<Car> cars;
CarsLoadedEvent({required this.cars});
}
class UpdateDeliveryOptionEvent extends TourEvent {
UpdateDeliveryOptionEvent({required this.key, required this.value, required this.deliveryId});
UpdateDeliveryOptionEvent({
required this.key,
required this.value,
required this.deliveryId,
});
String deliveryId;
String key;
@ -160,7 +183,10 @@ class UpdateDeliveryOptionEvent extends TourEvent {
}
class UpdateSelectedPaymentMethodEvent extends TourEvent {
UpdateSelectedPaymentMethodEvent({required this.payment, required this.deliveryId});
UpdateSelectedPaymentMethodEvent({
required this.payment,
required this.deliveryId,
});
Payment payment;
String deliveryId;
@ -176,4 +202,4 @@ class FinishDeliveryEvent extends TourEvent {
String deliveryId;
Uint8List customerSignature;
Uint8List driverSignature;
}
}