25 lines
670 B
Dart
25 lines
670 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 user = await loginUseCase(
|
|
LoginParams(event.username, event.password, event.sourceType),
|
|
);
|
|
print('✅ Got user: $user');
|
|
emit(LoginSuccess(user));
|
|
} catch (e) {
|
|
emit(LoginFailure(e.toString()));
|
|
}
|
|
});
|
|
}
|
|
}
|