mapEventToState method

  1. @override
Stream<LoginState> mapEventToState(
  1. LoginEvent event
)

@Deprecated - Use on

Must be implemented when a class extends Bloc. mapEventToState is called whenever an event is added and is responsible for converting that event into a new state. mapEventToState can yield zero, one, or multiple states for an event.

Implementation

@override
Stream<LoginState> mapEventToState(
  LoginEvent event,
) async* {
  if (event is LoginButtonTapEvent) {
    yield LoginLoadingState();
    try {
      final response = await controller.authLogin(
          email: event.email, password: event.password);
      if (response.ok) {
        final localUser = await sessionManager.getCurrentUser();
        if (response.user?.id != localUser?.id) {
          await sessionManager.clearBiometrics();
        }
        yield LoginSuccessState(response);
        return;
      }
      yield LoginFailureState(errorMessage: response.message!);
    } catch (e) {
      yield LoginFailureState(errorMessage: e.toString());
    }
  }
}