Files
feature-next-arch/lib/features/auth/presentation/bloc/login_bloc.dart
2026-01-18 20:21:14 +08:00

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()));
}
});
}
}