27 lines
738 B
Dart
27 lines
738 B
Dart
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
|
|
import '../../domain/usecases/login_usecase.dart';
|
|
import 'login_event.dart';
|
|
import 'login_state.dart';
|
|
|
|
class LoginBloc extends Bloc<LoginEvent, LoginState> {
|
|
final LoginUseCase loginUseCase;
|
|
|
|
LoginBloc(this.loginUseCase) : super(LoginInitial()) {
|
|
on<LoginSubmitted>((event, emit) async {
|
|
emit(LoginLoading());
|
|
try {
|
|
final result = await loginUseCase(
|
|
LoginParams(event.username, event.password, event.sourceType),
|
|
);
|
|
result.fold(
|
|
(failure) => emit(LoginFailure(failure.message)),
|
|
(user) => emit(LoginSuccess(user)),
|
|
);
|
|
} catch (e) {
|
|
emit(LoginFailure(e.toString()));
|
|
}
|
|
});
|
|
}
|
|
}
|