bloc
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
Reference in New Issue
Block a user