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