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:
143
lib/blocs/activity/db_activities/db_activity_event.dart
Normal file
143
lib/blocs/activity/db_activities/db_activity_event.dart
Normal file
@@ -0,0 +1,143 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../models/activity.dart';
|
||||
|
||||
/// Events pour les activités de la base de données
|
||||
abstract class DbActivityEvent extends Equatable {
|
||||
const DbActivityEvent();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
/// Charger les activités d'un voyage depuis la DB
|
||||
class LoadDbActivities extends DbActivityEvent {
|
||||
final String tripId;
|
||||
final List<String> tripParticipants;
|
||||
|
||||
const LoadDbActivities({
|
||||
required this.tripId,
|
||||
required this.tripParticipants,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, tripParticipants];
|
||||
}
|
||||
|
||||
/// Rechercher des activités dans la DB
|
||||
class SearchDbActivities extends DbActivityEvent {
|
||||
final String tripId;
|
||||
final String query;
|
||||
final List<String> tripParticipants;
|
||||
|
||||
const SearchDbActivities({
|
||||
required this.tripId,
|
||||
required this.query,
|
||||
required this.tripParticipants,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, query, tripParticipants];
|
||||
}
|
||||
|
||||
/// Ajouter une activité à la DB
|
||||
class AddDbActivity extends DbActivityEvent {
|
||||
final Activity activity;
|
||||
|
||||
const AddDbActivity({required this.activity});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [activity];
|
||||
}
|
||||
|
||||
/// Ajouter plusieurs activités à la DB
|
||||
class AddDbActivitiesBatch extends DbActivityEvent {
|
||||
final List<Activity> activities;
|
||||
|
||||
const AddDbActivitiesBatch({required this.activities});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [activities];
|
||||
}
|
||||
|
||||
/// Voter pour une activité
|
||||
class VoteForDbActivity extends DbActivityEvent {
|
||||
final String activityId;
|
||||
final String userId;
|
||||
final bool isUpvote;
|
||||
|
||||
const VoteForDbActivity({
|
||||
required this.activityId,
|
||||
required this.userId,
|
||||
required this.isUpvote,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [activityId, userId, isUpvote];
|
||||
}
|
||||
|
||||
/// Supprimer une activité
|
||||
class DeleteDbActivity extends DbActivityEvent {
|
||||
final String activityId;
|
||||
|
||||
const DeleteDbActivity({required this.activityId});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [activityId];
|
||||
}
|
||||
|
||||
/// Filtrer les activités
|
||||
class FilterDbActivities extends DbActivityEvent {
|
||||
final String? category;
|
||||
final bool? showFavorites;
|
||||
|
||||
const FilterDbActivities({
|
||||
this.category,
|
||||
this.showFavorites,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [category, showFavorites];
|
||||
}
|
||||
|
||||
/// Rafraîchir les activités
|
||||
class RefreshDbActivities extends DbActivityEvent {
|
||||
final String tripId;
|
||||
final List<String> tripParticipants;
|
||||
|
||||
const RefreshDbActivities({
|
||||
required this.tripId,
|
||||
required this.tripParticipants,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [tripId, tripParticipants];
|
||||
}
|
||||
|
||||
/// Mettre à jour une activité
|
||||
class UpdateDbActivity extends DbActivityEvent {
|
||||
final Activity activity;
|
||||
|
||||
const UpdateDbActivity({required this.activity});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [activity];
|
||||
}
|
||||
|
||||
/// Basculer le favori d'une activité
|
||||
class ToggleDbActivityFavorite extends DbActivityEvent {
|
||||
final String activityId;
|
||||
final String userId;
|
||||
|
||||
const ToggleDbActivityFavorite({
|
||||
required this.activityId,
|
||||
required this.userId,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [activityId, userId];
|
||||
}
|
||||
|
||||
/// Effacer les résultats de recherche
|
||||
class ClearDbSearchResults extends DbActivityEvent {
|
||||
const ClearDbSearchResults();
|
||||
}
|
||||
Reference in New Issue
Block a user