TF-3704 Fix menu bounces when collapse/expand folder
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -25,7 +25,6 @@ import 'package:tmail_ui_user/features/mailbox/domain/usecases/refresh_all_mailb
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/search_mailbox_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/model/verification/duplicate_name_validator.dart';
|
||||
@@ -159,34 +158,6 @@ class DestinationPickerController extends BaseMailboxController {
|
||||
}
|
||||
}
|
||||
|
||||
void toggleMailboxCategories(MailboxCategories categories) {
|
||||
switch(categories) {
|
||||
case MailboxCategories.exchange:
|
||||
final newExpandMode = mailboxCategoriesExpandMode.value.defaultMailbox == ExpandMode.EXPAND
|
||||
? ExpandMode.COLLAPSE
|
||||
: ExpandMode.EXPAND;
|
||||
mailboxCategoriesExpandMode.value.defaultMailbox = newExpandMode;
|
||||
mailboxCategoriesExpandMode.refresh();
|
||||
break;
|
||||
case MailboxCategories.personalFolders:
|
||||
final newExpandMode = mailboxCategoriesExpandMode.value.personalFolders == ExpandMode.EXPAND
|
||||
? ExpandMode.COLLAPSE
|
||||
: ExpandMode.EXPAND;
|
||||
mailboxCategoriesExpandMode.value.personalFolders = newExpandMode;
|
||||
mailboxCategoriesExpandMode.refresh();
|
||||
break;
|
||||
case MailboxCategories.teamMailboxes:
|
||||
final newExpandMode = mailboxCategoriesExpandMode.value.teamMailboxes == ExpandMode.EXPAND
|
||||
? ExpandMode.COLLAPSE
|
||||
: ExpandMode.EXPAND;
|
||||
mailboxCategoriesExpandMode.value.teamMailboxes = newExpandMode;
|
||||
mailboxCategoriesExpandMode.refresh();
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
bool isSearchActive() => searchState.value.searchStatus == SearchStatus.ACTIVE;
|
||||
|
||||
void enableSearch() {
|
||||
|
||||
@@ -27,6 +27,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_action
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_displayed.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_category_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_item_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/widgets/create_mailbox_name_input_decoration_builder.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/search_app_bar_widget.dart';
|
||||
@@ -341,16 +342,20 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
||||
} else {
|
||||
return Column(
|
||||
children: [
|
||||
buildHeaderMailboxCategory(
|
||||
context,
|
||||
controller.responsiveUtils,
|
||||
controller.imagePaths,
|
||||
categories,
|
||||
controller,
|
||||
toggleMailboxCategories: controller.toggleMailboxCategories,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
Obx(() => MailboxCategoryWidget(
|
||||
categories: categories,
|
||||
expandMode: categories.getExpandMode(
|
||||
controller.mailboxCategoriesExpandMode.value,
|
||||
),
|
||||
onToggleMailboxCategories: (categories, itemKey) =>
|
||||
controller.toggleMailboxCategories(
|
||||
categories,
|
||||
controller.destinationListScrollController,
|
||||
itemKey,
|
||||
),
|
||||
isArrangeLTR: false,
|
||||
),
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
)),
|
||||
AnimatedContainer(
|
||||
duration: const Duration(milliseconds: 400),
|
||||
child: categories.getExpandMode(controller.mailboxCategoriesExpandMode.value) == ExpandMode.EXPAND
|
||||
@@ -415,7 +420,12 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
||||
mailboxIdAlreadySelected: mailboxIdSelected,
|
||||
mailboxDisplayed: MailboxDisplayed.destinationPicker,
|
||||
onOpenMailboxFolderClick: (node) => _pickMailboxNode(context, node),
|
||||
onExpandFolderActionClick: (mailboxNode) => controller.toggleMailboxFolder(mailboxNode, controller.destinationListScrollController),
|
||||
onExpandFolderActionClick: (mailboxNode, itemKey) =>
|
||||
controller.toggleMailboxFolder(
|
||||
mailboxNode,
|
||||
controller.destinationListScrollController,
|
||||
itemKey,
|
||||
),
|
||||
),
|
||||
children: _buildListChildTileWidget(
|
||||
context,
|
||||
|
||||
Reference in New Issue
Block a user