mapEventToState method
@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<RegisterState> mapEventToState(
RegisterEvent event,
) async* {
if (event is RegisterButtonTapEvent) {
yield RegisterLoadingState();
final response = await controller.registerUser(
username: event.username,
name: event.fullName!,
email: event.email,
password: event.password,
phone: event.phone,
address: event.address,
role: event.role,
subRole: event.subRole,
schoolId: event.schoolId);
if (response.ok) {
if (response.user != null) {
await sessionManager.saveCurrentUser(user: response.user!);
}
if (response.accessToken != null) {
await sessionManager.saveToken(accessToken: response.accessToken!);
}
yield RegisterSuccessState(response);
return;
}
yield RegisterFailureState(errorMessage: response.message!);
} else if (event is CheckUserNameAvailability) {
yield UsernameCheckingState();
final response = await controller.checkUsername(username: event.username);
if (response.ok) {
yield UsernameCheckSuccessState(response);
return;
}
yield UsernameCheckFailureState(response);
}
}