Refactor user and theme management to use BLoC pattern; remove provider classes and integrate new services for user and group functionalities
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class UserState extends Equatable {
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class UserInitial extends UserState {}
|
||||
|
||||
class UserLoading extends UserState {}
|
||||
|
||||
class UserLoaded extends UserState {
|
||||
final UserModel user;
|
||||
|
||||
UserLoaded(this.user);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [user];
|
||||
}
|
||||
|
||||
class UserError extends UserState {
|
||||
final String message;
|
||||
|
||||
UserError(this.message);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
|
||||
// Modèle utilisateur simple
|
||||
class UserModel {
|
||||
final String id;
|
||||
final String email;
|
||||
final String prenom;
|
||||
final String? nom;
|
||||
|
||||
UserModel({
|
||||
required this.id,
|
||||
required this.email,
|
||||
required this.prenom,
|
||||
this.nom,
|
||||
});
|
||||
|
||||
factory UserModel.fromJson(Map<String, dynamic> json) {
|
||||
return UserModel(
|
||||
id: json['id'] ?? '',
|
||||
email: json['email'] ?? '',
|
||||
prenom: json['prenom'] ?? 'Voyageur',
|
||||
nom: json['nom'],
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'id': id,
|
||||
'email': email,
|
||||
'prenom': prenom,
|
||||
'nom': nom,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user