import 'dart:async'; // ignore: depend_on_referenced_packages import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; // ignore: depend_on_referenced_packages import 'package:meta/meta.dart'; import '../../../../core/network/handler_error.dart'; import '../../domain/entities/token.dart'; import '../../domain/usecases/login_user.dart'; part 'user_login_event.dart'; part 'user_login_state.dart'; class UserLoginBloc extends Bloc { final LoginUser loginUser; UserLoginBloc({required this.loginUser}) : super(NotLoggedState()) { on(_loginEvent); } Future _loginEvent( LoginEvent event, Emitter emit) async { emit(LoadingState()); final result = await loginUser( LoginParams(email: event.email, password: event.password)); result.fold((failure) { emit(ErrorState(message: HandleError.getMessage(failure))); }, (success) { emit(LoggedState(token: success)); }); } }