user_info_controller.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import 'package:injectable/injectable.dart';
  2. import 'package:keyboard/dialog/deprecate_diolog.dart';
  3. import '../../base/base_controller.dart';
  4. import '../../data/api/response/user_info_response.dart';
  5. import '../../data/repository/account_repository.dart';
  6. import 'package:get/get.dart';
  7. import '../../dialog/common_alert_dialog_impl.dart';
  8. import '../../utils/error_handler.dart';
  9. @injectable
  10. class UserInfoController extends BaseController {
  11. final AccountRepository accountRepository;
  12. Rxn<UserInfoResponse> get _userInfo => accountRepository.userInfo;
  13. UserInfoResponse? get userInfo => _userInfo.value;
  14. UserInfoController(this.accountRepository);
  15. @override
  16. void onInit() {
  17. super.onInit();
  18. }
  19. void clickLogout() {
  20. logoutAccountDialog(
  21. confirmOnTap: () {
  22. accountRepository.logout();
  23. Get.back();
  24. },
  25. );
  26. }
  27. void clickDeprecate() {
  28. DeprecateDialog.show(
  29. btnConfirm: () async {
  30. try {
  31. await accountRepository.deprecateAccount();
  32. accountRepository.logout();
  33. Get.back();
  34. } catch (error) {
  35. ErrorHandler.toastError(error);
  36. }
  37. },
  38. );
  39. }
  40. void clickBack() {
  41. Get.back();
  42. }
  43. }