From 05a52254adc78aa27d62d6648be4398cfab49e1b Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 19 Jul 2023 23:41:15 +0700 Subject: [PATCH] TF-1857 Add padding calendar event icon in item email --- .../mixin/base_email_item_tile.dart | 25 ++++++++++++------- .../styles/item_email_tile_styles.dart | 16 ++++++++++++ .../widgets/email_tile_builder.dart | 5 +--- .../widgets/email_tile_web_builder.dart | 15 +++-------- 4 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 lib/features/thread/presentation/styles/item_email_tile_styles.dart diff --git a/lib/features/thread/presentation/mixin/base_email_item_tile.dart b/lib/features/thread/presentation/mixin/base_email_item_tile.dart index fefbe00f4e..5484ed1412 100644 --- a/lib/features/thread/presentation/mixin/base_email_item_tile.dart +++ b/lib/features/thread/presentation/mixin/base_email_item_tile.dart @@ -18,6 +18,7 @@ import 'package:model/mailbox/presentation_mailbox.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/thread/domain/model/search_query.dart'; +import 'package:tmail_ui_user/features/thread/presentation/styles/item_email_tile_styles.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; typedef OnPressEmailActionClick = void Function(EmailActionType, PresentationEmail); @@ -331,15 +332,21 @@ mixin BaseEmailItemTile { } } - Widget buildCalendarEventIcon({required PresentationEmail presentationEmail}) { - return SvgPicture.asset( - imagePaths.icCalendarEvent, - width: 20, - height: 20, - fit: BoxFit.fill, - colorFilter: presentationEmail.hasRead - ? AppColor.colorCalendarEventRead.asFilter() - : AppColor.colorCalendarEventUnread.asFilter(), + Widget buildCalendarEventIcon({ + required BuildContext context, + required PresentationEmail presentationEmail + }) { + return Padding( + padding: ItemEmailTileStyles.getSpaceCalendarEventIcon(context, responsiveUtils), + child: SvgPicture.asset( + imagePaths.icCalendarEvent, + width: 20, + height: 20, + fit: BoxFit.fill, + colorFilter: presentationEmail.hasRead + ? AppColor.colorCalendarEventRead.asFilter() + : AppColor.colorCalendarEventUnread.asFilter(), + ), ); } } \ No newline at end of file diff --git a/lib/features/thread/presentation/styles/item_email_tile_styles.dart b/lib/features/thread/presentation/styles/item_email_tile_styles.dart new file mode 100644 index 0000000000..2c2c6c83f6 --- /dev/null +++ b/lib/features/thread/presentation/styles/item_email_tile_styles.dart @@ -0,0 +1,16 @@ + +import 'package:core/presentation/utils/responsive_utils.dart'; +import 'package:flutter/cupertino.dart'; + +class ItemEmailTileStyles { + + static EdgeInsetsGeometry getSpaceCalendarEventIcon(BuildContext context, ResponsiveUtils responsiveUtils) { + if (responsiveUtils.isScreenWithShortestSide(context)) { + return const EdgeInsetsDirectional.only(end: 4); + } else if (responsiveUtils.isWebDesktop(context)) { + return const EdgeInsetsDirectional.only(end: 12); + } else { + return const EdgeInsetsDirectional.only(end: 8); + } + } +} \ No newline at end of file diff --git a/lib/features/thread/presentation/widgets/email_tile_builder.dart b/lib/features/thread/presentation/widgets/email_tile_builder.dart index 0c8b537839..d507267d61 100644 --- a/lib/features/thread/presentation/widgets/email_tile_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_builder.dart @@ -108,10 +108,7 @@ class EmailTileBuilder with BaseEmailItemTile { mainAxisSize: MainAxisSize.min, children: [ if (_presentationEmail.hasCalendarEvent) - Padding( - padding: const EdgeInsetsDirectional.only(end: 8), - child: buildCalendarEventIcon(presentationEmail: _presentationEmail), - ), + buildCalendarEventIcon(context: _context, presentationEmail: _presentationEmail), Expanded(child: buildEmailTitle( _context, _presentationEmail, diff --git a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart index 4f167a3951..82a06ba552 100644 --- a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart @@ -173,10 +173,7 @@ class EmailTileBuilder with BaseEmailItemTile { mainAxisSize: MainAxisSize.min, children: [ if (_presentationEmail.hasCalendarEvent) - Padding( - padding: const EdgeInsetsDirectional.only(end: 8), - child: buildCalendarEventIcon(presentationEmail: _presentationEmail), - ), + buildCalendarEventIcon(context: _context, presentationEmail: _presentationEmail), Expanded(child: buildEmailTitle( _context, _presentationEmail, @@ -261,10 +258,7 @@ class EmailTileBuilder with BaseEmailItemTile { mainAxisSize: MainAxisSize.min, children: [ if (_presentationEmail.hasCalendarEvent) - Padding( - padding: const EdgeInsetsDirectional.only(end: 8), - child: buildCalendarEventIcon(presentationEmail: _presentationEmail), - ), + buildCalendarEventIcon(context: _context, presentationEmail: _presentationEmail), Expanded(child: buildEmailTitle( _context, _presentationEmail, @@ -520,10 +514,7 @@ class EmailTileBuilder with BaseEmailItemTile { return LayoutBuilder(builder: (context, constraints) { return Row(children: [ if (_presentationEmail.hasCalendarEvent) - Padding( - padding: const EdgeInsetsDirectional.only(end: 8), - child: buildCalendarEventIcon(presentationEmail: _presentationEmail), - ), + buildCalendarEventIcon(context: _context, presentationEmail: _presentationEmail), if (_presentationEmail.getEmailTitle().isNotEmpty) Container( constraints: BoxConstraints(maxWidth: constraints.maxWidth / 2),