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:
@@ -61,17 +61,36 @@ class ActivityBloc extends Bloc<ActivityEvent, ActivityState> {
|
||||
Emitter<ActivityState> emit,
|
||||
) async {
|
||||
try {
|
||||
emit(const ActivitySearching());
|
||||
// Si c'est un append (charger plus), on garde l'état actuel et on met isLoading à true
|
||||
if (event.appendToExisting && state is ActivitySearchResults) {
|
||||
final currentState = state as ActivitySearchResults;
|
||||
emit(currentState.copyWith(isLoading: true));
|
||||
} else {
|
||||
emit(const ActivitySearching());
|
||||
}
|
||||
|
||||
final searchResults = await _placesService.searchActivities(
|
||||
destination: event.destination,
|
||||
tripId: event.tripId,
|
||||
category: event.category,
|
||||
maxResults: event.maxResults ?? 20, // Par défaut 20, ou utiliser la valeur spécifiée
|
||||
offset: event.offset ?? 0, // Par défaut 0
|
||||
);
|
||||
|
||||
List<Activity> finalResults;
|
||||
|
||||
// Si on doit ajouter aux résultats existants
|
||||
if (event.appendToExisting && state is ActivitySearchResults) {
|
||||
final currentState = state as ActivitySearchResults;
|
||||
finalResults = [...currentState.searchResults, ...searchResults];
|
||||
} else {
|
||||
finalResults = searchResults;
|
||||
}
|
||||
|
||||
emit(ActivitySearchResults(
|
||||
searchResults: searchResults,
|
||||
searchResults: finalResults,
|
||||
query: event.category?.displayName ?? 'Toutes les activités',
|
||||
isLoading: false,
|
||||
));
|
||||
} catch (e) {
|
||||
_errorService.logError('activity_bloc', 'Erreur recherche activités: $e');
|
||||
|
||||
Reference in New Issue
Block a user