fix: hide Storage section in settings menu when quota is empty
This commit is contained in:
@@ -1,10 +1,8 @@
|
||||
|
||||
import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/contact_support_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/validate_setting_capability_supported_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
@@ -21,12 +19,23 @@ class ManageAccountMenuController extends GetxController with ContactSupportMixi
|
||||
AccountMenuItem.languageAndRegion,
|
||||
]);
|
||||
|
||||
late Worker _quotaRxWorker;
|
||||
|
||||
void _registerObxStreamListener() {
|
||||
ever(dashBoardController.accountId, (accountId) {
|
||||
if (accountId != null) {
|
||||
_createListAccountMenu();
|
||||
}
|
||||
});
|
||||
|
||||
_quotaRxWorker = ever(
|
||||
dashBoardController.octetsQuota,
|
||||
(octetsQuota) {
|
||||
if (octetsQuota != null) {
|
||||
_addStorageToMenuList();
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -49,8 +58,6 @@ class ManageAccountMenuController extends GetxController with ContactSupportMixi
|
||||
AccountMenuItem.mailboxVisibility,
|
||||
if (dashBoardController.isLanguageSettingDisplayed)
|
||||
AccountMenuItem.languageAndRegion,
|
||||
if (dashBoardController.isStorageCapabilitySupported)
|
||||
AccountMenuItem.storage,
|
||||
];
|
||||
listAccountMenuItem.value = newListMenuSetting;
|
||||
|
||||
@@ -70,4 +77,20 @@ class ManageAccountMenuController extends GetxController with ContactSupportMixi
|
||||
void backToMailboxDashBoard(BuildContext context) {
|
||||
dashBoardController.backToMailboxDashBoard(context: context);
|
||||
}
|
||||
|
||||
void _addStorageToMenuList() {
|
||||
listAccountMenuItem.add(AccountMenuItem.storage);
|
||||
|
||||
if (dashBoardController.selectedMenu != null) {
|
||||
dashBoardController.selectAccountMenuItem(
|
||||
dashBoardController.selectedMenu!,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
_quotaRxWorker.dispose();
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
+1
-2
@@ -7,7 +7,6 @@ import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/user_information_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/profile_setting/profile_setting_action_type.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/handle_profile_setting_action_type_click_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/validate_setting_capability_supported_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings/settings_controller.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings_utils.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/menu/widgets/setting_first_level_tile_builder.dart';
|
||||
@@ -171,7 +170,7 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
|
||||
]);
|
||||
}),
|
||||
Obx(() {
|
||||
if (controller.manageAccountDashboardController.isStorageCapabilitySupported) {
|
||||
if (controller.manageAccountDashboardController.octetsQuota.value != null) {
|
||||
return Column(children: [
|
||||
Divider(
|
||||
color: AppColor.colorDividerHorizontal,
|
||||
|
||||
Reference in New Issue
Block a user