1111
This commit is contained in:
40
lib/presentation/blocs/login/login_bloc.dart
Normal file
40
lib/presentation/blocs/login/login_bloc.dart
Normal file
@@ -0,0 +1,40 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import '../../../domain/usecases/login_usecase.dart';
|
||||
import 'login_event.dart';
|
||||
import 'login_state.dart';
|
||||
|
||||
class LoginBloc extends Bloc<LoginEvent, LoginState> {
|
||||
final LoginUseCase loginUseCase;
|
||||
|
||||
LoginBloc({required this.loginUseCase}) : super(const LoginInitial()) {
|
||||
on<LoginSubmitted>(_onLoginSubmitted);
|
||||
on<LoginReset>(_onLoginReset);
|
||||
}
|
||||
|
||||
Future<void> _onLoginSubmitted(
|
||||
LoginSubmitted event,
|
||||
Emitter<LoginState> emit,
|
||||
) async {
|
||||
emit(const LoginLoading());
|
||||
|
||||
final result = await loginUseCase(event.request);
|
||||
|
||||
result.fold(
|
||||
(failure) => emit(LoginError(failure.message)),
|
||||
(response) {
|
||||
if (response.isSuccess) {
|
||||
emit(LoginSuccess(response));
|
||||
} else {
|
||||
emit(LoginError(response.message));
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
void _onLoginReset(
|
||||
LoginReset event,
|
||||
Emitter<LoginState> emit,
|
||||
) {
|
||||
emit(const LoginInitial());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user