first commit
This commit is contained in:
95
app/lib/presentation/blocs/tour/tour_state.dart
Normal file
95
app/lib/presentation/blocs/tour/tour_state.dart
Normal file
@@ -0,0 +1,95 @@
|
||||
part of 'tour_bloc.dart';
|
||||
|
||||
abstract class TourState extends Equatable {
|
||||
const TourState();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class TourInitial extends TourState {}
|
||||
|
||||
class TourLoading extends TourState {}
|
||||
|
||||
class ToursLoaded extends TourState {
|
||||
final List<Tour> tours;
|
||||
final List<Tour> completedTours;
|
||||
final List<Tour> allTours;
|
||||
final Tour? selectedTour;
|
||||
final List<LogisticObject>? selectedTourObjects;
|
||||
final TourStatistics? selectedTourStats;
|
||||
final bool isSyncing;
|
||||
final bool isLoadingDetails;
|
||||
final bool showCompleted;
|
||||
|
||||
const ToursLoaded({
|
||||
required this.tours,
|
||||
this.completedTours = const [],
|
||||
required this.allTours,
|
||||
this.selectedTour,
|
||||
this.selectedTourObjects,
|
||||
this.selectedTourStats,
|
||||
this.isSyncing = false,
|
||||
this.isLoadingDetails = false,
|
||||
this.showCompleted = true,
|
||||
});
|
||||
|
||||
ToursLoaded copyWith({
|
||||
List<Tour>? tours,
|
||||
List<Tour>? completedTours,
|
||||
List<Tour>? allTours,
|
||||
Tour? selectedTour,
|
||||
List<LogisticObject>? selectedTourObjects,
|
||||
TourStatistics? selectedTourStats,
|
||||
bool? isSyncing,
|
||||
bool? isLoadingDetails,
|
||||
bool? showCompleted,
|
||||
}) {
|
||||
return ToursLoaded(
|
||||
tours: tours ?? this.tours,
|
||||
completedTours: completedTours ?? this.completedTours,
|
||||
allTours: allTours ?? this.allTours,
|
||||
selectedTour: selectedTour ?? this.selectedTour,
|
||||
selectedTourObjects: selectedTourObjects ?? this.selectedTourObjects,
|
||||
selectedTourStats: selectedTourStats ?? this.selectedTourStats,
|
||||
isSyncing: isSyncing ?? this.isSyncing,
|
||||
isLoadingDetails: isLoadingDetails ?? this.isLoadingDetails,
|
||||
showCompleted: showCompleted ?? this.showCompleted,
|
||||
);
|
||||
}
|
||||
|
||||
int get completedCount => completedTours.length;
|
||||
int get totalCount => allTours.length;
|
||||
double get completionPercentage => totalCount > 0 ? (completedCount / totalCount) * 100 : 0;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
tours,
|
||||
completedTours,
|
||||
allTours,
|
||||
selectedTour,
|
||||
selectedTourObjects,
|
||||
selectedTourStats,
|
||||
isSyncing,
|
||||
isLoadingDetails,
|
||||
showCompleted,
|
||||
];
|
||||
}
|
||||
|
||||
class TourError extends TourState {
|
||||
final String message;
|
||||
|
||||
const TourError({required this.message});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
|
||||
class SyncError extends TourState {
|
||||
final String message;
|
||||
|
||||
const SyncError({required this.message});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
Reference in New Issue
Block a user