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 { final LoginUseCase loginUseCase; LoginBloc({required this.loginUseCase}) : super(const LoginInitial()) { on(_onLoginSubmitted); on(_onLoginReset); } Future _onLoginSubmitted( LoginSubmitted event, Emitter 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 emit, ) { emit(const LoginInitial()); } }