From cce5cc54fd51a89c24b3d638ef414456fe192e3d Mon Sep 17 00:00:00 2001 From: DennisCodeBuds <78538176+DennisCodeBuds@users.noreply.github.com> Date: Thu, 13 Jan 2022 12:15:26 +0100 Subject: [PATCH] Updating for Bloc 8.0.0 --- .../lib/auth/login/login_bloc.dart | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/day21_login_ui_bloc/lib/auth/login/login_bloc.dart b/day21_login_ui_bloc/lib/auth/login/login_bloc.dart index 2a83d37..29f6e2f 100644 --- a/day21_login_ui_bloc/lib/auth/login/login_bloc.dart +++ b/day21_login_ui_bloc/lib/auth/login/login_bloc.dart @@ -5,30 +5,29 @@ import 'package:social_media_app/auth/login/login_event.dart'; import 'package:social_media_app/auth/login/login_state.dart'; class LoginBloc extends Bloc { - final AuthRepository authRepo; + final AuthRepository authRepository; - LoginBloc({this.authRepo}) : super(LoginState()); - - @override - Stream mapEventToState(LoginEvent event) async* { - // Username updated - if (event is LoginUsernameChanged) { - yield state.copyWith(username: event.username); + LoginBloc({required this.authRepository}) : super(LoginState()) { + on(_onLoginUsernameChanged); + on(_onLoginPasswordChanged); + on(_onLoginSubmitted); + } - // Password updated - } else if (event is LoginPasswordChanged) { - yield state.copyWith(password: event.password); + void _onLoginUsernameChanged(LoginUsernameChanged event, Emitter emit) async { + emit(state.copyWith(username: event.username)); + } - // Form submitted - } else if (event is LoginSubmitted) { - yield state.copyWith(formStatus: FormSubmitting()); + void _onLoginPasswordChanged(LoginPasswordChanged event, Emitter emit) async { + emit(state.copyWith(password: event.password)); + } - try { - await authRepo.login(); - yield state.copyWith(formStatus: SubmissionSuccess()); - } catch (e) { - yield state.copyWith(formStatus: SubmissionFailed(e)); - } + void _onLoginSubmitted(LoginSubmitted event, Emitter emit) async { + emit(state.copyWith(formStatus: FormSubmitting())); + try { + await authRepository.login(); + emit(state.copyWith(formStatus: SubmissionSuccess())); + } on Exception catch (e) { + emit(state.copyWith(formStatus: SubmissionFailed(e))); } } }