Refactor ActivityCard UI and improve voting functionality
- 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.
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
/// Events pour les activités approuvées par tous les participants
|
||||
abstract class ApprovedActivityEvent extends Equatable {
|
||||
const ApprovedActivityEvent();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
/// Charger les activités approuvées par tous
|
||||
class LoadApprovedActivities extends ApprovedActivityEvent {
|
||||
final String tripId;
|
||||
final List<String> tripParticipants;
|
||||
|
||||
const LoadApprovedActivities({
|
||||
required this.tripId,
|
||||
required this.tripParticipants,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, tripParticipants];
|
||||
}
|
||||
|
||||
/// Rechercher dans les activités approuvées
|
||||
class SearchApprovedActivities extends ApprovedActivityEvent {
|
||||
final String tripId;
|
||||
final String query;
|
||||
final List<String> tripParticipants;
|
||||
|
||||
const SearchApprovedActivities({
|
||||
required this.tripId,
|
||||
required this.query,
|
||||
required this.tripParticipants,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, query, tripParticipants];
|
||||
}
|
||||
|
||||
/// Filtrer les activités approuvées
|
||||
class FilterApprovedActivities extends ApprovedActivityEvent {
|
||||
final String? category;
|
||||
final double? minRating;
|
||||
|
||||
const FilterApprovedActivities({
|
||||
this.category,
|
||||
this.minRating,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [category, minRating];
|
||||
}
|
||||
|
||||
/// Rafraîchir les activités approuvées
|
||||
class RefreshApprovedActivities extends ApprovedActivityEvent {
|
||||
final String tripId;
|
||||
final List<String> tripParticipants;
|
||||
|
||||
const RefreshApprovedActivities({
|
||||
required this.tripId,
|
||||
required this.tripParticipants,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, tripParticipants];
|
||||
}
|
||||
|
||||
/// Effacer les résultats de recherche approuvées
|
||||
class ClearApprovedSearchResults extends ApprovedActivityEvent {
|
||||
const ClearApprovedSearchResults();
|
||||
}
|
||||
Reference in New Issue
Block a user