2026-02-27 10:14:14 +07:00

31 lines
1008 B
Dart

import 'package:baseproject/core/common/index.dart';
import 'package:baseproject/features/repositories/hra_repository.dart';
import 'package:baseproject/features/usecases/index.dart';
import 'package:baseproject/features/usecases/user/user_use_cases.dart';
class UserBloc extends BaseCubit<BaseStateBloc<UserInfoDto?>> {
UserBloc(this._userUseCases) : super(InitState<UserInfoDto?>(null));
final UserUseCases _userUseCases;
Future<bool> getUserInfo() async {
final resultRefreshToken = await _userUseCases.refreshToken();
if (resultRefreshToken.isRight()) {
final resultUserInfo = await _userUseCases.getUserInfoFromApi();
emit(LoadedState<UserInfoDto>(resultUserInfo.fold((l) => UserInfoDto(), (r) => r)));
} else {
emit(LoadedState<UserInfoDto?>(null));
}
return true;
}
updateUserInfo(UserInfoDto userInfo) {
emit(LoadedState<UserInfoDto>(userInfo));
}
logout() {
emit(LoadedState<UserInfoDto?>(null));
_userUseCases.clearData();
}
}