TF-3704 Fix menu bounces when collapse/expand folder
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -4,18 +4,20 @@ import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
||||
import 'package:core/utils/direction_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
||||
import 'package:model/mailbox/expand_mode.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/expand_mode_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
class MailboxExpandButton extends StatelessWidget {
|
||||
final GlobalKey itemKey;
|
||||
final MailboxNode mailboxNode;
|
||||
final ImagePaths imagePaths;
|
||||
final OnClickExpandMailboxNodeAction? onExpandFolderActionClick;
|
||||
|
||||
const MailboxExpandButton({
|
||||
super.key,
|
||||
required this.itemKey,
|
||||
required this.mailboxNode,
|
||||
required this.imagePaths,
|
||||
required this.onExpandFolderActionClick,
|
||||
@@ -24,35 +26,22 @@ class MailboxExpandButton extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return TMailButtonWidget.fromIcon(
|
||||
icon: _getExpandIcon(context, imagePaths),
|
||||
icon: mailboxNode.expandMode.getIcon(
|
||||
imagePaths,
|
||||
DirectionUtils.isDirectionRTLByLanguage(context),
|
||||
),
|
||||
iconColor: _expandIconColor,
|
||||
iconSize: 20,
|
||||
padding: const EdgeInsets.all(5),
|
||||
backgroundColor: Colors.transparent,
|
||||
tooltipMessage: _getExpandTooltipMessage(context),
|
||||
onTapActionCallback: () => onExpandFolderActionClick?.call(mailboxNode),
|
||||
tooltipMessage: mailboxNode.expandMode.getTooltipMessage(AppLocalizations.of(context)),
|
||||
onTapActionCallback: () => onExpandFolderActionClick?.call(mailboxNode, itemKey),
|
||||
);
|
||||
}
|
||||
|
||||
String _getExpandIcon(BuildContext context, ImagePaths imagePaths) {
|
||||
if (mailboxNode.expandMode == ExpandMode.EXPAND) {
|
||||
return imagePaths.icArrowBottom;
|
||||
} else {
|
||||
return DirectionUtils.isDirectionRTLByLanguage(context)
|
||||
? imagePaths.icArrowLeft
|
||||
: imagePaths.icArrowRight;
|
||||
}
|
||||
}
|
||||
|
||||
Color get _expandIconColor {
|
||||
return mailboxNode.item.allowedToDisplay
|
||||
? Colors.black
|
||||
: AppColor.steelGray200;
|
||||
}
|
||||
|
||||
String _getExpandTooltipMessage(BuildContext context) {
|
||||
return mailboxNode.expandMode == ExpandMode.EXPAND
|
||||
? AppLocalizations.of(context).collapse
|
||||
: AppLocalizations.of(context).expand;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user