This commit is contained in:
Felipe
2024-02-19 18:16:51 -05:00
parent 9e6f76e309
commit 997c6047bb
34 changed files with 1235 additions and 594 deletions
@@ -19,13 +19,23 @@ class AuthenticationBloc
_userSubscription = userRepository.streamUser().listen((authUser) {
add(AuthenticationUserChanged(authUser));
});
on<AuthenticationUserChanged>((event, emit) {
if (event.user != null) {
emit(AuthenticationState.authenticated(event.user!));
} else {
emit(const AuthenticationState.unauthenticated());
}
});
on<AuthenticationUserChanged>(_onAuthenticationUserChanged);
on<AuthenticationLogoutRequested>(_onAuthenticationLogoutRequested);
}
void _onAuthenticationUserChanged(
AuthenticationUserChanged event, Emitter<AuthenticationState> emit) {
emit(
event.user != null
? AuthenticationState.authenticated(event.user!)
: const AuthenticationState.unauthenticated(),
);
}
void _onAuthenticationLogoutRequested(AuthenticationLogoutRequested event,
Emitter<AuthenticationState> emit) async {
await userRepository.logOut();
emit(const AuthenticationState.unauthenticated());
}
@override
+13 -10
View File
@@ -11,15 +11,18 @@ class SignUpBloc extends Bloc<SignUpEvent, SignUpState> {
SignUpBloc({required UserRepository userRepository})
: _userRepository = userRepository,
super(SignUpInitial()) {
on<SignUpRequired>((event, emit) async {
emit(SignUpProcess());
try {
MyUser user = await _userRepository.signUp(event.user, event.password);
await _userRepository.setUserData(user);
emit(SignUpSuccess());
} catch (e) {
emit(SignUpFailure());
}
});
on<SignUpRequired>(_onSignUpRequired);
}
void _onSignUpRequired(
SignUpRequired event, Emitter<SignUpState> emit) async {
emit(SignUpProcess());
try {
MyUser user = await _userRepository.signUp(event.user, event.password);
await _userRepository.setUserData(user);
emit(SignUpSuccess());
} catch (e) {
emit(SignUpFailure());
}
}
}
+25 -8
View File
@@ -14,18 +14,35 @@ class SignInBloc extends Bloc<SignInEvent, SignInState> {
SignInBloc({required UserRepository userRepository})
: _userRepository = userRepository,
super(SignInInitial()) {
on<SignInRequired>((event, emit) async {
emit(SignInProcess());
userRepository.streamUser().listen((authUser) {
try {
await _userRepository.signIn(event.email, event.password);
emit(SignInSuccess());
if (authUser == null) {
emit(SignInFailure());
} else {
emit(SignInSuccess());
}
} catch (e) {
log(e.toString());
emit(const SignInFailure());
}
});
on<SignOutRequired>((event, emit) async {
await _userRepository.logOut();
});
on<SignInRequired>(_onSignInRequired);
on<SignOutRequired>(_onSignOutRequired);
}
void _onSignInRequired(
SignInRequired event, Emitter<SignInState> emit) async {
emit(SignInProcess());
try {
await _userRepository.signIn(event.email, event.password);
emit(SignInSuccess());
} catch (e) {
log(e.toString());
emit(const SignInFailure());
}
}
void _onSignOutRequired(
SignOutRequired event, Emitter<SignInState> emit) async {
await _userRepository.logOut();
}
}