This commit is contained in:
Felipe
2024-02-16 08:52:37 -05:00
parent 1c20d0c0cd
commit 9ca2b62be3
39 changed files with 2299 additions and 327 deletions
+26
View File
@@ -0,0 +1,26 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:user_repository/user_repository.dart';
part 'my_user_event.dart';
part 'my_user_state.dart';
class MyUserBloc extends Bloc<MyUserEvent, MyUserState> {
final UserRepository _userRepository;
MyUserBloc({required UserRepository myUserRepository})
: _userRepository = myUserRepository,
super(const MyUserState.loading()) {
on<GetMyUser>(_onGetMyUser);
}
void _onGetMyUser(GetMyUser event, Emitter<MyUserState> emit) async {
emit(const MyUserState.loading());
try {
MyUser myUser = await _userRepository.getMyUser(event.myUserId);
emit(MyUserState.success(myUser));
} catch (e) {
emit(const MyUserState.failure());
}
}
}
+17
View File
@@ -0,0 +1,17 @@
part of 'my_user_bloc.dart';
abstract class MyUserEvent extends Equatable {
const MyUserEvent();
@override
List<Object> get props => [];
}
class GetMyUser extends MyUserEvent {
final String myUserId;
const GetMyUser({required this.myUserId});
@override
List<Object> get props => [myUserId];
}
+23
View File
@@ -0,0 +1,23 @@
part of 'my_user_bloc.dart';
enum MyUserStatus { success, loading, failure }
class MyUserState extends Equatable {
final MyUserStatus status;
final MyUser? user;
const MyUserState._({
this.status = MyUserStatus.loading,
this.user,
});
const MyUserState.loading() : this._();
const MyUserState.success(MyUser user)
: this._(status: MyUserStatus.success, user: user);
const MyUserState.failure() : this._(status: MyUserStatus.failure);
@override
List<Object?> get props => [status, user];
}