52 lines
1.9 KiB
Dart
52 lines
1.9 KiB
Dart
import 'package:core/presentation/extensions/color_extension.dart';
|
|
import 'package:core/presentation/resources/image_paths.dart';
|
|
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: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 Color? color;
|
|
final OnClickExpandMailboxNodeAction? onExpandFolderActionClick;
|
|
|
|
const MailboxExpandButton({
|
|
super.key,
|
|
required this.itemKey,
|
|
required this.mailboxNode,
|
|
required this.imagePaths,
|
|
required this.onExpandFolderActionClick,
|
|
this.color,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return TMailButtonWidget.fromIcon(
|
|
key: const Key('expand_mailbox_button'),
|
|
icon: mailboxNode.expandMode.getIcon(
|
|
imagePaths,
|
|
DirectionUtils.isDirectionRTLByLanguage(context),
|
|
),
|
|
iconColor: color ?? _expandIconColor,
|
|
iconSize: 17,
|
|
margin: const EdgeInsetsDirectional.only(start: 8),
|
|
padding: const EdgeInsets.all(3),
|
|
backgroundColor: Colors.transparent,
|
|
tooltipMessage: mailboxNode.expandMode.getTooltipMessage(AppLocalizations.of(context)),
|
|
onTapActionCallback: () => onExpandFolderActionClick?.call(mailboxNode, itemKey),
|
|
);
|
|
}
|
|
|
|
Color get _expandIconColor {
|
|
return mailboxNode.item.allowedToDisplay
|
|
? Colors.black
|
|
: AppColor.steelGray200;
|
|
}
|
|
}
|