Files
feature-next-arch/lib/features/auth/presentation/bloc/login_cubit.dart
Songzex 335c468aac 修复版本管理整包更新无法弹出的问题
完成集成新的登录接口的更换使用
完成集成用户的场站列表接口
完成开发设计选择场站项为全局属性
完成我的页面的个人信息的集成和详情页面的开发
完成设备页面的中无人机机场的列表接口对接入和个项页面的布局的优化
完成设备页面的中无人机机场的详情接口的对接和使用和页面的更新布局
2026-05-29 14:13:34 +08:00

38 lines
1.3 KiB
Dart

import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:maibu_satabot_v2/core/app/app_user_cubit.dart';
import 'package:maibu_satabot_v2/core/di/injection.dart';
import 'package:maibu_satabot_v2/features/devices/presentation/bloc/devices_cubit.dart';
import '../../domain/usecases/login_usecase.dart';
import 'auth_cubit.dart';
import 'login_state.dart';
class LoginCubit extends Cubit<LoginState> {
final LoginUseCase loginUseCase;
final AuthCubit authCubit;
LoginCubit(this.loginUseCase, this.authCubit) : super(LoginInitial());
/// Login
/// @param username 用户名
/// @param password 密码
/// @param sourceType 登录来源: 1:web; 2:mobile; 3:mini_programs; 4:pc
Future<void> login(String username, String password, sourceType) async {
emit(LoginLoading());
try {
final result = await loginUseCase.call(LoginParams(username, password, sourceType));
// final user = sl<AppUserCubit>().state.user;
// final devicesCubit = sl<DevicesCubit>();
// if (user != null) {
// devicesCubit.fetchAllDevices(user.username);
// }
result.fold((failure) => emit(LoginFailure(failure.message)), (user) {
emit(LoginSuccess(user));
authCubit.loginSuccess(user);
});
} catch (e) {
emit(LoginFailure(e.toString()));
}
}
}