- Updated ActivityCard layout for better visual consistency and responsiveness. - Simplified the category badge and adjusted styles for better readability. - Enhanced the voting section with a progress bar and improved button designs. - Added a new method in Activity model to check if all trip participants approved an activity. - Improved error handling and validation in ActivityRepository for voting and fetching activities. - Implemented pagination in ActivityPlacesService for activity searches. - Removed outdated scripts for cleaning up duplicate images.
76 lines
2.0 KiB
Dart
76 lines
2.0 KiB
Dart
import 'package:equatable/equatable.dart';
|
|
import '../../../models/activity.dart';
|
|
|
|
/// States pour les activités approuvées par tous les participants
|
|
abstract class ApprovedActivityState extends Equatable {
|
|
const ApprovedActivityState();
|
|
|
|
@override
|
|
List<Object?> get props => [];
|
|
}
|
|
|
|
/// État initial
|
|
class ApprovedActivityInitial extends ApprovedActivityState {
|
|
const ApprovedActivityInitial();
|
|
}
|
|
|
|
/// État de chargement
|
|
class ApprovedActivityLoading extends ApprovedActivityState {
|
|
const ApprovedActivityLoading();
|
|
}
|
|
|
|
/// État de recherche
|
|
class ApprovedActivitySearching extends ApprovedActivityState {
|
|
const ApprovedActivitySearching();
|
|
}
|
|
|
|
/// État avec les activités approuvées chargées
|
|
class ApprovedActivityLoaded extends ApprovedActivityState {
|
|
final List<Activity> approvedActivities;
|
|
final List<String> tripParticipants;
|
|
|
|
const ApprovedActivityLoaded({
|
|
required this.approvedActivities,
|
|
required this.tripParticipants,
|
|
});
|
|
|
|
@override
|
|
List<Object?> get props => [approvedActivities, tripParticipants];
|
|
|
|
/// Créer une copie avec des modifications
|
|
ApprovedActivityLoaded copyWith({
|
|
List<Activity>? approvedActivities,
|
|
List<String>? tripParticipants,
|
|
}) {
|
|
return ApprovedActivityLoaded(
|
|
approvedActivities: approvedActivities ?? this.approvedActivities,
|
|
tripParticipants: tripParticipants ?? this.tripParticipants,
|
|
);
|
|
}
|
|
}
|
|
|
|
/// État avec résultats de recherche approuvées
|
|
class ApprovedActivitySearchResults extends ApprovedActivityState {
|
|
final List<Activity> results;
|
|
final String query;
|
|
final List<String> tripParticipants;
|
|
|
|
const ApprovedActivitySearchResults({
|
|
required this.results,
|
|
required this.query,
|
|
required this.tripParticipants,
|
|
});
|
|
|
|
@override
|
|
List<Object?> get props => [results, query, tripParticipants];
|
|
}
|
|
|
|
/// État d'erreur
|
|
class ApprovedActivityError extends ApprovedActivityState {
|
|
final String message;
|
|
|
|
const ApprovedActivityError(this.message);
|
|
|
|
@override
|
|
List<Object?> get props => [message];
|
|
} |