From e264648abba7c36131550098865d6d1d16dbeeb7 Mon Sep 17 00:00:00 2001 From: hieubt Date: Wed, 15 Nov 2023 17:28:16 +0700 Subject: [PATCH] TF-2304 Add pop up title for sort selecting in tablet (cherry picked from commit 72d48529992a922d0979a6db0cf223d588197dbb) --- ...mail_sort_by_action_tile_widget_style.dart | 9 +++ .../email_sort_by_action_tile_widget.dart | 55 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 lib/features/search/email/presentation/styles/email_sort_by_action_tile_widget_style.dart create mode 100644 lib/features/search/email/presentation/widgets/email_sort_by_action_tile_widget.dart diff --git a/lib/features/search/email/presentation/styles/email_sort_by_action_tile_widget_style.dart b/lib/features/search/email/presentation/styles/email_sort_by_action_tile_widget_style.dart new file mode 100644 index 000000000..8e015f543 --- /dev/null +++ b/lib/features/search/email/presentation/styles/email_sort_by_action_tile_widget_style.dart @@ -0,0 +1,9 @@ +import 'package:flutter/material.dart'; + +class EmailSortByActionTitleWidgetStyle { + static const EdgeInsetsGeometry padding = EdgeInsets.symmetric(horizontal: 24, vertical: 16); + + static const double width = 332.0; + static const double space = 12.0; + static const double iconSize = 24.0; +} \ No newline at end of file diff --git a/lib/features/search/email/presentation/widgets/email_sort_by_action_tile_widget.dart b/lib/features/search/email/presentation/widgets/email_sort_by_action_tile_widget.dart new file mode 100644 index 000000000..8cc0d2000 --- /dev/null +++ b/lib/features/search/email/presentation/widgets/email_sort_by_action_tile_widget.dart @@ -0,0 +1,55 @@ +import 'package:core/core.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart'; +import 'package:tmail_ui_user/features/search/email/presentation/styles/email_sort_by_action_tile_widget_style.dart'; + +typedef OnSortOrderSelected = void Function(BuildContext, EmailSortOrderType); + +class EmailSortByActionTitleWidget extends StatelessWidget { + + final EmailSortOrderType sortType; + final ImagePaths imagePaths; + final EmailSortOrderType? sortTypeSelected; + final OnSortOrderSelected? onSortOrderSelected; + + const EmailSortByActionTitleWidget({ + super.key, + required this.sortType, + required this.imagePaths, + this.sortTypeSelected, + this.onSortOrderSelected, + }); + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: () => onSortOrderSelected?.call(context, sortType), + child: Padding( + padding: EmailSortByActionTitleWidgetStyle.padding, + child: SizedBox( + width: EmailSortByActionTitleWidgetStyle.width, + child: Row( + children: [ + Expanded( + child: Text( + sortType.getTitle(context), + style: sortType.getTextStyle(isInDropdown: true), + ) + ), + if (sortType == sortTypeSelected) + const SizedBox(width: EmailSortByActionTitleWidgetStyle.space), + if (sortType == sortTypeSelected) + SvgPicture.asset( + imagePaths.icFilterSelected, + width: EmailSortByActionTitleWidgetStyle.iconSize, + height: EmailSortByActionTitleWidgetStyle.iconSize, + fit: BoxFit.fill, + ) + ], + ), + ), + ), + ); + } +} \ No newline at end of file