TF-3410 Update color and icon size of mailbox view

This commit is contained in:
dab246
2025-01-08 19:32:04 +07:00
committed by Dat H. Pham
parent ee180b4962
commit 67ebd137a8
14 changed files with 102 additions and 88 deletions
@@ -103,7 +103,7 @@ extension AppColor on Color {
static const colorTextSettingDescriptions = colorTextButtonHeaderThread; static const colorTextSettingDescriptions = colorTextButtonHeaderThread;
static const colorButtonHeaderThread = Color(0x99EBEDF0); static const colorButtonHeaderThread = Color(0x99EBEDF0);
static const colorBorderBodyThread = Color(0x5CB8C1CC); static const colorBorderBodyThread = Color(0x5CB8C1CC);
static const colorBgDesktop = Color(0xFFF6F6F6); static const colorBgDesktop = Color(0xFFF3F6F9);
static const colorItemEmailSelectedDesktop = Color(0xFFDFEEFF); static const colorItemEmailSelectedDesktop = Color(0xFFDFEEFF);
static const colorAvatar = Color(0xFFDE5E5E); static const colorAvatar = Color(0xFFDE5E5E);
static const colorFocusButton = Color(0x14818C99); static const colorFocusButton = Color(0x14818C99);
@@ -242,6 +242,8 @@ extension AppColor on Color {
static const steelGray200 = Color(0xFFAEB7C2); static const steelGray200 = Color(0xFFAEB7C2);
static const blue700 = Color(0xFF208BFF); static const blue700 = Color(0xFF208BFF);
static const steelGray400 = Color(0xFF818C99); static const steelGray400 = Color(0xFF818C99);
static const blue700 = Color(0xFF208BFF);
static const blue100 = Color(0xFFDFEEFF);
static const mapGradientColor = [ static const mapGradientColor = [
[Color(0xFF21D4FD), Color(0xFFB721FF)], [Color(0xFF21D4FD), Color(0xFFB721FF)],
@@ -660,7 +660,7 @@ class _TypeAheadFieldQuickSearchState<T, P, R>
) )
: const BoxDecoration( : const BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(12)), borderRadius: BorderRadius.all(Radius.circular(12)),
color: AppColor.colorBgSearchBar, color: AppColor.colorBgDesktop,
), ),
height: widget.maxHeight, height: widget.maxHeight,
child: Row( child: Row(
@@ -476,7 +476,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
MailboxId? mailboxIdSelected MailboxId? mailboxIdSelected
) { ) {
return Padding( return Padding(
padding: const EdgeInsets.symmetric(horizontal: 24), padding: const EdgeInsets.symmetric(horizontal: 16),
child: Material( child: Material(
color: Colors.transparent, color: Colors.transparent,
child: InkWell( child: InkWell(
@@ -491,26 +491,30 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
customBorder: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(8))), customBorder: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(8))),
hoverColor: AppColor.colorMailboxHovered, hoverColor: AppColor.colorMailboxHovered,
child: Obx(() => Container( child: Obx(() => Container(
padding: const EdgeInsets.symmetric(horizontal: 28, vertical: 8), padding: const EdgeInsetsDirectional.symmetric(
horizontal: 8,
vertical: 10,
),
color: controller.mailboxDestination.value == PresentationMailbox.unifiedMailbox color: controller.mailboxDestination.value == PresentationMailbox.unifiedMailbox
? AppColor.colorItemSelected ? AppColor.colorItemSelected
: Colors.transparent, : Colors.transparent,
child: Row(children: [ child: Row(children: [
const SizedBox(width: 26),
SvgPicture.asset( SvgPicture.asset(
controller.imagePaths.icFolderMailbox, controller.imagePaths.icFolderMailbox,
width: PlatformInfo.isWeb ? 24 : 20, width: 20,
height: PlatformInfo.isWeb ? 24 : 20, height: 20,
fit: BoxFit.fill fit: BoxFit.fill
), ),
const SizedBox(width: 8), const SizedBox(width: 10),
Expanded(child: Text( Expanded(child: Text(
AppLocalizations.of(context).allFolders, AppLocalizations.of(context).allFolders,
maxLines: 1, maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
style: const TextStyle( style: const TextStyle(
fontSize: 15, fontSize: 14,
color: AppColor.colorNameEmail, color: Colors.black,
fontWeight: FontWeight.normal fontWeight: FontWeight.normal
), ),
)), )),
@@ -193,7 +193,7 @@ class MailboxView extends BaseMailboxView {
child: Text( child: Text(
AppLocalizations.of(context).folders, AppLocalizations.of(context).folders,
style: const TextStyle( style: const TextStyle(
fontSize: 17, fontSize: 15,
color: Colors.black, color: Colors.black,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
@@ -207,14 +207,16 @@ class MailboxView extends BaseMailboxView {
TMailButtonWidget.fromIcon( TMailButtonWidget.fromIcon(
icon: controller.imagePaths.icSearchBar, icon: controller.imagePaths.icSearchBar,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
iconColor: AppColor.primaryColor, iconColor: AppColor.steelGrayA540,
iconSize: 20,
tooltipMessage: AppLocalizations.of(context).searchForFolders, tooltipMessage: AppLocalizations.of(context).searchForFolders,
onTapActionCallback: () => controller.openSearchViewAction(context) onTapActionCallback: () => controller.openSearchViewAction(context)
), ),
TMailButtonWidget.fromIcon( TMailButtonWidget.fromIcon(
icon: controller.imagePaths.icAddNewFolder, icon: controller.imagePaths.icAddNewFolder,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
iconColor: AppColor.primaryColor, iconColor: AppColor.steelGrayA540,
iconSize: 20,
tooltipMessage: AppLocalizations.of(context).newFolder, tooltipMessage: AppLocalizations.of(context).newFolder,
onTapActionCallback: () => controller.goToCreateNewMailboxView(context) onTapActionCallback: () => controller.goToCreateNewMailboxView(context)
), ),
@@ -354,9 +354,10 @@ mixin MailboxWidgetMixin {
: DirectionUtils.isDirectionRTLByLanguage(context) : DirectionUtils.isDirectionRTLByLanguage(context)
? imagePaths.icArrowLeft ? imagePaths.icArrowLeft
: imagePaths.icArrowRight, : imagePaths.icArrowRight,
iconColor: AppColor.primaryColor, iconColor: Colors.black,
iconSize: 20,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
padding: EdgeInsets.zero, padding: const EdgeInsets.all(5),
tooltipMessage: expandMode == ExpandMode.EXPAND tooltipMessage: expandMode == ExpandMode.EXPAND
? AppLocalizations.of(context).collapse ? AppLocalizations.of(context).collapse
: AppLocalizations.of(context).expand, : AppLocalizations.of(context).expand,
@@ -368,10 +369,10 @@ mixin MailboxWidgetMixin {
maxLines: 1, maxLines: 1,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
style: const TextStyle( style: Theme.of(context).textTheme.bodyMedium?.copyWith(
fontSize: 17, fontSize: 14,
color: Colors.black, color: Colors.black,
fontWeight: FontWeight.bold fontWeight: FontWeight.w400,
) )
)), )),
]) ])
@@ -14,4 +14,5 @@ class LabelMailboxItemWidgetStyles {
static const FontWeight labelTeamMailboxTextFontWeight = FontWeight.bold; static const FontWeight labelTeamMailboxTextFontWeight = FontWeight.bold;
static const FontWeight labelFolderTextFontWeight = FontWeight.normal; static const FontWeight labelFolderTextFontWeight = FontWeight.normal;
static const FontWeight teamMailboxTextFontWeight = FontWeight.w400; static const FontWeight teamMailboxTextFontWeight = FontWeight.w400;
static const FontWeight labelFolderSelectedFontWeight = FontWeight.bold;
} }
@@ -1,14 +1,13 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/utils/direction_utils.dart'; import 'package:core/utils/direction_utils.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart';
class LeadingMailboxItemWidgetStyles { class LeadingMailboxItemWidgetStyles {
static const double expandIconSize = 15; static const double expandIconSize = 15;
static const double expandIconSplashRadius = 12; static const double expandIconSplashRadius = 12;
static const double emptyBoxSize = 32;
static const Color displayColor = AppColor.primaryColor; static const Color displayColor = Colors.black;
static const Color normalColor = AppColor.colorIconUnSubscribedMailbox; static const Color normalColor = AppColor.colorIconUnSubscribedMailbox;
static const EdgeInsetsGeometry expandIconPadding = EdgeInsetsDirectional.only(start: 8); static const EdgeInsetsGeometry expandIconPadding = EdgeInsetsDirectional.only(start: 8);
@@ -1,6 +1,4 @@
import 'package:core/utils/platform_info.dart';
class MailboxIconWidgetStyles { class MailboxIconWidgetStyles {
static double iconSize = PlatformInfo.isWeb ? 24 : 20; static const double iconSize = 20.0;
} }
@@ -1,7 +1,6 @@
import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/text/text_overflow_builder.dart'; import 'package:core/presentation/views/text/text_overflow_builder.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:model/extensions/presentation_mailbox_extension.dart'; import 'package:model/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
@@ -12,19 +11,21 @@ import 'package:tmail_ui_user/features/mailbox/presentation/widgets/trailing_mai
class LabelMailboxItemWidget extends StatelessWidget { class LabelMailboxItemWidget extends StatelessWidget {
final ResponsiveUtils responsiveUtils;
final MailboxNode mailboxNode; final MailboxNode mailboxNode;
final bool showTrailing; final bool showTrailing;
final bool isItemHovered; final bool isItemHovered;
final bool isSelected;
final OnClickOpenMenuMailboxNodeAction? onMenuActionClick; final OnClickOpenMenuMailboxNodeAction? onMenuActionClick;
final OnEmptyMailboxActionCallback? onEmptyMailboxActionCallback; final OnEmptyMailboxActionCallback? onEmptyMailboxActionCallback;
final _responsiveUtils = Get.find<ResponsiveUtils>(); const LabelMailboxItemWidget({
LabelMailboxItemWidget({
super.key, super.key,
required this.mailboxNode, required this.mailboxNode,
required this.responsiveUtils,
this.showTrailing = true, this.showTrailing = true,
this.isItemHovered = false, this.isItemHovered = false,
this.isSelected = false,
this.onMenuActionClick, this.onMenuActionClick,
this.onEmptyMailboxActionCallback, this.onEmptyMailboxActionCallback,
}); });
@@ -47,7 +48,7 @@ class LabelMailboxItemWidget extends StatelessWidget {
), ),
), ),
), ),
if (_responsiveUtils.isWebDesktop(context) && mailboxNode.item.allowedHasEmptyAction) if (responsiveUtils.isWebDesktop(context) && mailboxNode.item.allowedHasEmptyAction)
EmptyMailboxPopupDialogWidget( EmptyMailboxPopupDialogWidget(
mailboxNode: mailboxNode, mailboxNode: mailboxNode,
onEmptyMailboxActionCallback: (mailboxNode) => onEmptyMailboxActionCallback?.call(mailboxNode), onEmptyMailboxActionCallback: (mailboxNode) => onEmptyMailboxActionCallback?.call(mailboxNode),
@@ -89,7 +90,13 @@ class LabelMailboxItemWidget extends StatelessWidget {
? LabelMailboxItemWidgetStyles.labelTeamMailboxTextColor ? LabelMailboxItemWidgetStyles.labelTeamMailboxTextColor
: LabelMailboxItemWidgetStyles.labelFolderTextColor; : LabelMailboxItemWidgetStyles.labelFolderTextColor;
FontWeight get _mailboxNameTextFontWeight => mailboxNode.item.isTeamMailboxes FontWeight get _mailboxNameTextFontWeight {
? LabelMailboxItemWidgetStyles.labelTeamMailboxTextFontWeight if (isSelected) {
: LabelMailboxItemWidgetStyles.labelFolderTextFontWeight; return LabelMailboxItemWidgetStyles.labelFolderSelectedFontWeight;
} else {
return mailboxNode.item.isTeamMailboxes
? LabelMailboxItemWidgetStyles.labelTeamMailboxTextFontWeight
: LabelMailboxItemWidgetStyles.labelFolderTextFontWeight;
}
}
} }
@@ -3,7 +3,6 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:core/utils/direction_utils.dart'; import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:model/extensions/presentation_mailbox_extension.dart'; import 'package:model/extensions/presentation_mailbox_extension.dart';
import 'package:model/mailbox/expand_mode.dart'; import 'package:model/mailbox/expand_mode.dart';
import 'package:model/mailbox/select_mode.dart'; import 'package:model/mailbox/select_mode.dart';
@@ -15,6 +14,7 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class LeadingMailboxItemWidget extends StatelessWidget { class LeadingMailboxItemWidget extends StatelessWidget {
final ImagePaths imagePaths;
final MailboxNode mailboxNode; final MailboxNode mailboxNode;
final SelectMode selectionMode; final SelectMode selectionMode;
final OnSelectMailboxNodeAction? onSelectMailboxFolderClick; final OnSelectMailboxNodeAction? onSelectMailboxFolderClick;
@@ -22,6 +22,7 @@ class LeadingMailboxItemWidget extends StatelessWidget {
const LeadingMailboxItemWidget({ const LeadingMailboxItemWidget({
super.key, super.key,
required this.imagePaths,
required this.mailboxNode, required this.mailboxNode,
this.selectionMode = SelectMode.INACTIVE, this.selectionMode = SelectMode.INACTIVE,
this.onExpandFolderActionClick, this.onExpandFolderActionClick,
@@ -30,24 +31,23 @@ class LeadingMailboxItemWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final imagePaths = Get.find<ImagePaths>();
return Row(children: [ return Row(children: [
if (mailboxNode.hasChildren()) Visibility.maintain(
TMailButtonWidget.fromIcon( visible: mailboxNode.hasChildren(),
child: TMailButtonWidget.fromIcon(
icon: _getExpandIcon(context, imagePaths), icon: _getExpandIcon(context, imagePaths),
iconColor: _expandIconColor, iconColor: _expandIconColor,
padding: EdgeInsets.zero, iconSize: 20,
margin: const EdgeInsetsDirectional.only(start: 4), padding: const EdgeInsets.all(5),
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
tooltipMessage: _getExpandTooltipMessage(context), tooltipMessage: _getExpandTooltipMessage(context),
onTapActionCallback: () => onExpandFolderActionClick?.call(mailboxNode) onTapActionCallback: () => onExpandFolderActionClick?.call(mailboxNode)
) ),
else ),
const SizedBox(width: LeadingMailboxItemWidgetStyles.emptyBoxSize),
Transform( Transform(
transform: LeadingMailboxItemWidgetStyles.mailboxIconTransform(context), transform: LeadingMailboxItemWidgetStyles.mailboxIconTransform(context),
child: MailboxIconWidget( child: MailboxIconWidget(
imagePaths: imagePaths,
mailboxNode: mailboxNode, mailboxNode: mailboxNode,
selectionMode: selectionMode, selectionMode: selectionMode,
onSelectMailboxFolderClick: onSelectMailboxFolderClick onSelectMailboxFolderClick: onSelectMailboxFolderClick
@@ -3,7 +3,6 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/utils/platform_info.dart'; import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:model/extensions/presentation_mailbox_extension.dart'; import 'package:model/extensions/presentation_mailbox_extension.dart';
import 'package:model/mailbox/select_mode.dart'; import 'package:model/mailbox/select_mode.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
@@ -13,6 +12,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method
class MailboxIconWidget extends StatelessWidget { class MailboxIconWidget extends StatelessWidget {
final ImagePaths imagePaths;
final MailboxNode mailboxNode; final MailboxNode mailboxNode;
final SelectMode selectionMode; final SelectMode selectionMode;
final OnSelectMailboxNodeAction? onSelectMailboxFolderClick; final OnSelectMailboxNodeAction? onSelectMailboxFolderClick;
@@ -20,14 +20,13 @@ class MailboxIconWidget extends StatelessWidget {
const MailboxIconWidget({ const MailboxIconWidget({
super.key, super.key,
required this.mailboxNode, required this.mailboxNode,
required this.imagePaths,
this.selectionMode = SelectMode.INACTIVE, this.selectionMode = SelectMode.INACTIVE,
this.onSelectMailboxFolderClick, this.onSelectMailboxFolderClick,
}); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final imagePaths = Get.find<ImagePaths>();
if (_isSelectionActivatedOnMobile) { if (_isSelectionActivatedOnMobile) {
return InkWell( return InkWell(
onTap: () => onSelectMailboxFolderClick?.call(mailboxNode), onTap: () => onSelectMailboxFolderClick?.call(mailboxNode),
@@ -75,15 +75,15 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
borderRadius: const BorderRadius.all(Radius.circular(MailboxItemWidgetStyles.borderRadius)), borderRadius: const BorderRadius.all(Radius.circular(MailboxItemWidgetStyles.borderRadius)),
color: backgroundColorItem color: backgroundColorItem
), ),
padding: widget.mailboxNode.hasChildren() padding: const EdgeInsetsDirectional.symmetric(
? const EdgeInsetsDirectional.symmetric( horizontal: MailboxItemWidgetStyles.padding,
horizontal: MailboxItemWidgetStyles.padding, vertical: MailboxItemWidgetStyles.space,
vertical: MailboxItemWidgetStyles.space ),
)
: const EdgeInsets.all(MailboxItemWidgetStyles.padding),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
LeadingMailboxItemWidget( LeadingMailboxItemWidget(
imagePaths: _imagePaths,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
selectionMode: widget.selectionMode, selectionMode: widget.selectionMode,
onSelectMailboxFolderClick: widget.onSelectMailboxFolderClick, onSelectMailboxFolderClick: widget.onSelectMailboxFolderClick,
@@ -92,8 +92,10 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
const SizedBox(width: MailboxItemWidgetStyles.space), const SizedBox(width: MailboxItemWidgetStyles.space),
Expanded( Expanded(
child: LabelMailboxItemWidget( child: LabelMailboxItemWidget(
responsiveUtils: _responsiveUtils,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
isItemHovered: _isItemHovered, isItemHovered: _isItemHovered,
isSelected: _isSelected,
onMenuActionClick: widget.onMenuActionClick, onMenuActionClick: widget.onMenuActionClick,
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback
) )
@@ -116,15 +118,14 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
borderRadius: const BorderRadius.all(Radius.circular(MailboxItemWidgetStyles.borderRadius)), borderRadius: const BorderRadius.all(Radius.circular(MailboxItemWidgetStyles.borderRadius)),
color: backgroundColorItem color: backgroundColorItem
), ),
padding: widget.mailboxNode.hasChildren() padding: const EdgeInsetsDirectional.symmetric(
? const EdgeInsetsDirectional.symmetric( horizontal: MailboxItemWidgetStyles.padding,
horizontal: MailboxItemWidgetStyles.padding, vertical: MailboxItemWidgetStyles.space,
vertical: MailboxItemWidgetStyles.space ),
)
: const EdgeInsets.all(MailboxItemWidgetStyles.padding),
child: Row( child: Row(
children: [ children: [
LeadingMailboxItemWidget( LeadingMailboxItemWidget(
imagePaths: _imagePaths,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
selectionMode: widget.selectionMode, selectionMode: widget.selectionMode,
onSelectMailboxFolderClick: widget.onSelectMailboxFolderClick, onSelectMailboxFolderClick: widget.onSelectMailboxFolderClick,
@@ -133,8 +134,10 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
const SizedBox(width: MailboxItemWidgetStyles.space), const SizedBox(width: MailboxItemWidgetStyles.space),
Expanded( Expanded(
child: LabelMailboxItemWidget( child: LabelMailboxItemWidget(
responsiveUtils: _responsiveUtils,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
isItemHovered: _isItemHovered, isItemHovered: _isItemHovered,
isSelected: _isSelected,
onMenuActionClick: widget.onMenuActionClick, onMenuActionClick: widget.onMenuActionClick,
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback
) )
@@ -157,12 +160,10 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
borderRadius: const BorderRadius.all(Radius.circular(MailboxItemWidgetStyles.borderRadius)), borderRadius: const BorderRadius.all(Radius.circular(MailboxItemWidgetStyles.borderRadius)),
color: backgroundColorItem color: backgroundColorItem
), ),
padding: widget.mailboxNode.hasChildren() padding: const EdgeInsetsDirectional.symmetric(
? const EdgeInsetsDirectional.symmetric( horizontal: MailboxItemWidgetStyles.padding,
horizontal: MailboxItemWidgetStyles.padding, vertical: MailboxItemWidgetStyles.space,
vertical: MailboxItemWidgetStyles.space ),
)
: const EdgeInsets.all(MailboxItemWidgetStyles.padding),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@@ -170,6 +171,7 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
Row( Row(
children: [ children: [
LeadingMailboxItemWidget( LeadingMailboxItemWidget(
imagePaths: _imagePaths,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
selectionMode: widget.selectionMode, selectionMode: widget.selectionMode,
onSelectMailboxFolderClick: widget.onSelectMailboxFolderClick, onSelectMailboxFolderClick: widget.onSelectMailboxFolderClick,
@@ -178,8 +180,10 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
const SizedBox(width: MailboxItemWidgetStyles.padding), const SizedBox(width: MailboxItemWidgetStyles.padding),
Expanded( Expanded(
child: LabelMailboxItemWidget( child: LabelMailboxItemWidget(
responsiveUtils: _responsiveUtils,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
isItemHovered: _isItemHovered, isItemHovered: _isItemHovered,
isSelected: _isSelected,
onMenuActionClick: widget.onMenuActionClick, onMenuActionClick: widget.onMenuActionClick,
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback
) )
@@ -213,18 +217,17 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
customBorder: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(8))), customBorder: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(8))),
hoverColor: AppColor.colorMailboxHovered, hoverColor: AppColor.colorMailboxHovered,
child: Container( child: Container(
padding: widget.mailboxNode.hasChildren() padding: const EdgeInsetsDirectional.symmetric(
? const EdgeInsetsDirectional.symmetric( horizontal: MailboxItemWidgetStyles.padding,
horizontal: MailboxItemWidgetStyles.padding, vertical: MailboxItemWidgetStyles.space,
vertical: MailboxItemWidgetStyles.space ),
)
: const EdgeInsets.all(MailboxItemWidgetStyles.padding),
color: widget.mailboxNode.isSelected color: widget.mailboxNode.isSelected
? AppColor.colorItemSelected ? AppColor.colorItemSelected
: Colors.transparent, : Colors.transparent,
child: Row( child: Row(
children: [ children: [
LeadingMailboxItemWidget( LeadingMailboxItemWidget(
imagePaths: _imagePaths,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
selectionMode: widget.selectionMode, selectionMode: widget.selectionMode,
onSelectMailboxFolderClick: widget.onSelectMailboxFolderClick, onSelectMailboxFolderClick: widget.onSelectMailboxFolderClick,
@@ -233,8 +236,10 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
const SizedBox(width: MailboxItemWidgetStyles.padding), const SizedBox(width: MailboxItemWidgetStyles.padding),
Expanded( Expanded(
child: LabelMailboxItemWidget( child: LabelMailboxItemWidget(
responsiveUtils: _responsiveUtils,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
showTrailing: false, showTrailing: false,
isSelected: _isSelected,
isItemHovered: _isItemHovered, isItemHovered: _isItemHovered,
onMenuActionClick: widget.onMenuActionClick, onMenuActionClick: widget.onMenuActionClick,
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback
@@ -259,12 +264,15 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
} }
} }
bool get _isSelected =>
widget.mailboxNodeSelected?.id == widget.mailboxNode.item.id;
Color get backgroundColorItem { Color get backgroundColorItem {
if (widget.mailboxDisplayed == MailboxDisplayed.destinationPicker) { if (widget.mailboxDisplayed == MailboxDisplayed.destinationPicker) {
return Colors.white; return Colors.white;
} else { } else {
if (widget.mailboxNodeSelected?.id == widget.mailboxNode.item.id || _isItemHovered) { if (_isSelected || _isItemHovered) {
return AppColor.colorBgMailboxSelected; return AppColor.blue100;
} else { } else {
return Colors.transparent; return Colors.transparent;
} }
@@ -716,13 +716,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
iconSize: 24, iconSize: 24,
iconColor: Colors.white, iconColor: Colors.white,
padding: const EdgeInsetsDirectional.symmetric(vertical: 8), padding: const EdgeInsetsDirectional.symmetric(vertical: 8),
backgroundColor: AppColor.colorTextButton, backgroundColor: AppColor.blue700,
boxShadow: const [
BoxShadow(
blurRadius: 12.0,
color: AppColor.colorShadowComposerButton
)
],
textStyle: const TextStyle( textStyle: const TextStyle(
fontSize: 15, fontSize: 15,
color: Colors.white, color: Colors.white,
@@ -35,9 +35,7 @@ class MailBoxVisibilityFolderTileBuilder extends StatelessWidget {
onTap: () {}, onTap: () {},
borderRadius: const BorderRadius.all(Radius.circular(8)), borderRadius: const BorderRadius.all(Radius.circular(8)),
child: Padding( child: Padding(
padding: _mailboxNode.hasChildren() padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
? const EdgeInsets.symmetric(horizontal: 8, vertical: 5)
: const EdgeInsets.all(8),
child: Row( child: Row(
children: [ children: [
_buildLeadingMailboxItem(context), _buildLeadingMailboxItem(context),
@@ -56,21 +54,22 @@ class MailBoxVisibilityFolderTileBuilder extends StatelessWidget {
return Row( return Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
if (_mailboxNode.hasChildren() && _mailboxNode.item.isPersonal) Visibility.maintain(
TMailButtonWidget.fromIcon( visible: _mailboxNode.hasChildren() && _mailboxNode.item.isPersonal,
child: TMailButtonWidget.fromIcon(
icon: _getExpandIcon(context, _imagePaths), icon: _getExpandIcon(context, _imagePaths),
iconColor: _mailboxNode.item.allowedToDisplay iconColor: _mailboxNode.item.allowedToDisplay
? AppColor.primaryColor ? Colors.black
: AppColor.colorIconUnSubscribedMailbox, : AppColor.colorIconUnSubscribedMailbox,
padding: EdgeInsets.zero, padding: const EdgeInsets.all(5),
iconSize: 20,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
tooltipMessage: _mailboxNode.expandMode == ExpandMode.EXPAND tooltipMessage: _mailboxNode.expandMode == ExpandMode.EXPAND
? AppLocalizations.of(context).collapse ? AppLocalizations.of(context).collapse
: AppLocalizations.of(context).expand, : AppLocalizations.of(context).expand,
onTapActionCallback: () => onClickExpandMailboxNodeAction?.call(_mailboxNode) onTapActionCallback: () => onClickExpandMailboxNodeAction?.call(_mailboxNode)
) ),
else ),
const SizedBox(width: 28),
if (!_mailboxNode.item.isTeamMailboxes) if (!_mailboxNode.item.isTeamMailboxes)
_buildMailboxIcon(context), _buildMailboxIcon(context),
] ]
@@ -97,7 +96,7 @@ class MailBoxVisibilityFolderTileBuilder extends StatelessWidget {
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
style: TextStyle( style: TextStyle(
fontSize: _mailboxNode.item.isTeamMailboxes ? 16 : 15, fontSize: _mailboxNode.item.isTeamMailboxes ? 16 : 14,
color: _mailboxNode.item.allowedToDisplay color: _mailboxNode.item.allowedToDisplay
? Colors.black ? Colors.black
: AppColor.colorTitleAUnSubscribedMailbox, : AppColor.colorTitleAUnSubscribedMailbox,