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,93 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../models/activity.dart';
|
||||
|
||||
/// Events pour les activités Google Places
|
||||
abstract class GoogleActivityEvent extends Equatable {
|
||||
const GoogleActivityEvent();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
/// Charger les activités Google Places
|
||||
class LoadGoogleActivities extends GoogleActivityEvent {
|
||||
final String tripId;
|
||||
final String destination;
|
||||
final ActivityCategory? category;
|
||||
|
||||
const LoadGoogleActivities({
|
||||
required this.tripId,
|
||||
required this.destination,
|
||||
this.category,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, destination, category];
|
||||
}
|
||||
|
||||
/// Charger plus d'activités Google (pagination)
|
||||
class LoadMoreGoogleActivities extends GoogleActivityEvent {
|
||||
final String tripId;
|
||||
final String destination;
|
||||
final ActivityCategory? category;
|
||||
final String? nextPageToken;
|
||||
|
||||
const LoadMoreGoogleActivities({
|
||||
required this.tripId,
|
||||
required this.destination,
|
||||
this.category,
|
||||
this.nextPageToken,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, destination, category, nextPageToken];
|
||||
}
|
||||
|
||||
/// Mettre à jour les activités Google
|
||||
class UpdateGoogleActivities extends GoogleActivityEvent {
|
||||
final List<Activity> activities;
|
||||
final String? nextPageToken;
|
||||
final bool hasMoreData;
|
||||
final String query;
|
||||
|
||||
const UpdateGoogleActivities({
|
||||
required this.activities,
|
||||
this.nextPageToken,
|
||||
required this.hasMoreData,
|
||||
required this.query,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [activities, nextPageToken, hasMoreData, query];
|
||||
}
|
||||
|
||||
/// Ajouter une activité Google à la DB
|
||||
class AddGoogleActivityToDb extends GoogleActivityEvent {
|
||||
final Activity activity;
|
||||
|
||||
const AddGoogleActivityToDb({required this.activity});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [activity];
|
||||
}
|
||||
|
||||
/// Rechercher des activités Google par catégorie
|
||||
class SearchGoogleActivitiesByCategory extends GoogleActivityEvent {
|
||||
final String tripId;
|
||||
final String destination;
|
||||
final ActivityCategory category;
|
||||
|
||||
const SearchGoogleActivitiesByCategory({
|
||||
required this.tripId,
|
||||
required this.destination,
|
||||
required this.category,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, destination, category];
|
||||
}
|
||||
|
||||
/// Effacer les résultats Google
|
||||
class ClearGoogleActivities extends GoogleActivityEvent {
|
||||
const ClearGoogleActivities();
|
||||
}
|
||||
Reference in New Issue
Block a user