TF-571 Get user's profile directly in Session
This commit is contained in:
committed by
Dat H. Pham
parent
a48cd35d4f
commit
7d32e80bc1
@@ -10,11 +10,11 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/mail_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator_property.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
@@ -37,7 +37,6 @@ import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_int
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_all_recent_search_latest_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_user_profile_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/quick_search_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
|
||||
@@ -162,9 +161,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
}
|
||||
},
|
||||
(success) {
|
||||
if (success is GetUserProfileSuccess) {
|
||||
userProfile.value = success.userProfile;
|
||||
} else if (success is SendEmailSuccess) {
|
||||
if (success is SendEmailSuccess) {
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastWithIcon(
|
||||
currentOverlayContext!,
|
||||
@@ -214,7 +211,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
}
|
||||
|
||||
void _getUserProfile() async {
|
||||
consumeState(_getUserProfileInteractor.execute());
|
||||
userProfile.value = sessionCurrent != null ? UserProfile(sessionCurrent!.username.value) : null;
|
||||
}
|
||||
|
||||
void _setSessionCurrent() {
|
||||
@@ -539,7 +536,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
closeMailboxMenuDrawer();
|
||||
}
|
||||
push(AppRoutes.MANAGE_ACCOUNT,
|
||||
arguments: ManageAccountArguments(accountId.value, userProfile.value));
|
||||
arguments: ManageAccountArguments(sessionCurrent));
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -17,9 +17,7 @@ class ManageAccountDashBoardBindings extends BaseBindings {
|
||||
|
||||
@override
|
||||
void bindingsController() {
|
||||
Get.lazyPut(() => ManageAccountDashBoardController(
|
||||
Get.find<GetUserProfileInteractor>(),
|
||||
));
|
||||
Get.lazyPut(() => ManageAccountDashBoardController());
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -9,7 +9,6 @@ import 'package:model/model.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_user_profile_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_user_profile_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/manage_account_arguments.dart';
|
||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||
@@ -19,8 +18,6 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
|
||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||
|
||||
final GetUserProfileInteractor _getUserProfileInteractor;
|
||||
|
||||
final menuDrawerKey = GlobalKey<ScaffoldState>(debugLabel: 'manage_account');
|
||||
|
||||
final appInformation = Rxn<PackageInfo>();
|
||||
@@ -28,9 +25,9 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
final accountId = Rxn<AccountId>();
|
||||
final accountMenuItemSelected = AccountMenuItem.profiles.obs;
|
||||
|
||||
ManageAccountDashBoardController(
|
||||
this._getUserProfileInteractor,
|
||||
);
|
||||
Session? sessionCurrent;
|
||||
|
||||
ManageAccountDashBoardController();
|
||||
|
||||
@override
|
||||
void onReady() {
|
||||
@@ -57,6 +54,7 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
|
||||
@override
|
||||
void handleReloaded(Session session) {
|
||||
sessionCurrent = session;
|
||||
accountId.value = session.accounts.keys.first;
|
||||
_getUserProfile();
|
||||
}
|
||||
@@ -65,8 +63,8 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
final arguments = Get.arguments;
|
||||
log('ManageAccountDashBoardController::_getAccountIdAndUserProfile(): $arguments');
|
||||
if (arguments is ManageAccountArguments) {
|
||||
accountId.value = arguments.accountId;
|
||||
userProfile.value = arguments.userProfile;
|
||||
sessionCurrent = arguments.session;
|
||||
accountId.value = sessionCurrent?.accounts.keys.first;
|
||||
} else {
|
||||
if (kIsWeb) {
|
||||
reload();
|
||||
@@ -81,7 +79,7 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
}
|
||||
|
||||
void _getUserProfile() async {
|
||||
consumeState(_getUserProfileInteractor.execute());
|
||||
userProfile.value = sessionCurrent != null ? UserProfile(sessionCurrent!.username.value) : null;
|
||||
}
|
||||
|
||||
void openMenuDrawer() {
|
||||
@@ -103,7 +101,7 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
|
||||
void goToSettings() {
|
||||
pushAndPop(AppRoutes.MANAGE_ACCOUNT,
|
||||
arguments: ManageAccountArguments(accountId.value, userProfile.value));
|
||||
arguments: ManageAccountArguments(sessionCurrent));
|
||||
}
|
||||
|
||||
void backToMailboxDashBoard() {
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
|
||||
class ManageAccountArguments with EquatableMixin {
|
||||
|
||||
final AccountId? accountId;
|
||||
final UserProfile? userProfile;
|
||||
final Session? session;
|
||||
|
||||
ManageAccountArguments(this.accountId, this.userProfile);
|
||||
ManageAccountArguments(this.session);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [accountId, userProfile];
|
||||
List<Object?> get props => [session];
|
||||
}
|
||||
Reference in New Issue
Block a user