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:
Dayron
2025-11-04 20:21:54 +01:00
parent 8ff9e12fd4
commit f6c8432335
19 changed files with 2902 additions and 961 deletions

View File

@@ -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();
}