user_info_controller.dart 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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/consts/event_report.dart';
  6. import '../../data/repository/account_repository.dart';
  7. import 'package:get/get.dart';
  8. import '../../dialog/common_alert_dialog_impl.dart';
  9. import '../../handler/event_handler.dart';
  10. import '../../utils/error_handler.dart';
  11. @injectable
  12. class UserInfoController extends BaseController {
  13. final AccountRepository accountRepository;
  14. Rxn<UserInfoResponse> get _userInfo => accountRepository.userInfo;
  15. UserInfoResponse? get userInfo => _userInfo.value;
  16. UserInfoController(this.accountRepository);
  17. @override
  18. void onInit() {
  19. super.onInit();
  20. }
  21. void clickLogout() {
  22. EventHandler.report(EventId.event_14002);
  23. logoutAccountDialog(
  24. confirmOnTap: () {
  25. accountRepository.logout();
  26. Get.back();
  27. },
  28. );
  29. }
  30. void clickDeprecate() {
  31. EventHandler.report(EventId.event_14003);
  32. DeprecateDialog.show(
  33. btnConfirm: () async {
  34. EventHandler.report(EventId.event_14004);
  35. try {
  36. await accountRepository.deprecateAccount();
  37. accountRepository.logout();
  38. Get.back();
  39. } catch (error) {
  40. ErrorHandler.toastError(error);
  41. }
  42. },
  43. btnCancel: () {
  44. EventHandler.report(EventId.event_14005);
  45. },
  46. );
  47. }
  48. void clickBack() {
  49. Get.back();
  50. }
  51. }