From 119f5826c9d57b979cd07df069af968f22bafdca Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 29 Sep 2023 09:20:59 +0700 Subject: [PATCH] TF-2179 Add TitleAppBarThread widget/style (cherry picked from commit 1450cc1a3dbcd88e9e85f994a193293d1255d8eb) --- .../title_app_bar_thread_widget_style.dart | 17 +++++ .../app_bar/title_app_bar_thread_widget.dart | 75 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 lib/features/thread/presentation/styles/app_bar/title_app_bar_thread_widget_style.dart create mode 100644 lib/features/thread/presentation/widgets/app_bar/title_app_bar_thread_widget.dart diff --git a/lib/features/thread/presentation/styles/app_bar/title_app_bar_thread_widget_style.dart b/lib/features/thread/presentation/styles/app_bar/title_app_bar_thread_widget_style.dart new file mode 100644 index 000000000..3914f02f7 --- /dev/null +++ b/lib/features/thread/presentation/styles/app_bar/title_app_bar_thread_widget_style.dart @@ -0,0 +1,17 @@ + +import 'package:core/presentation/extensions/color_extension.dart'; +import 'package:flutter/material.dart'; + +class TitleAppBarThreadWidgetStyle { + static const EdgeInsetsGeometry padding = EdgeInsets.symmetric(vertical: 8, horizontal: 16); + + static const TextStyle titleStyle = TextStyle( + fontSize: 21, + color: Colors.black, + fontWeight: FontWeight.w700 + ); + static const TextStyle filterOptionStyle = TextStyle( + fontSize: 11, + color: AppColor.colorContentEmail + ); +} \ No newline at end of file diff --git a/lib/features/thread/presentation/widgets/app_bar/title_app_bar_thread_widget.dart b/lib/features/thread/presentation/widgets/app_bar/title_app_bar_thread_widget.dart new file mode 100644 index 000000000..d4b3db851 --- /dev/null +++ b/lib/features/thread/presentation/widgets/app_bar/title_app_bar_thread_widget.dart @@ -0,0 +1,75 @@ + +import 'package:core/presentation/resources/image_paths.dart'; +import 'package:core/presentation/views/button/tmail_button_widget.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:model/mailbox/presentation_mailbox.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; +import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart'; +import 'package:tmail_ui_user/features/thread/presentation/styles/app_bar/title_app_bar_thread_widget_style.dart'; +import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart'; + +class TitleAppBarThreadWidget extends StatelessWidget { + final _imagePaths = Get.find(); + + final PresentationMailbox? mailboxSelected; + final FilterMessageOption filterOption; + final OnOpenMailboxMenuActionClick openMailboxAction; + final double maxWidth; + + TitleAppBarThreadWidget({ + super.key, + required this.mailboxSelected, + required this.filterOption, + required this.maxWidth, + required this.openMailboxAction, + }); + + @override + Widget build(BuildContext context) { + if (filterOption == FilterMessageOption.all) { + if (mailboxSelected != null) { + return TMailButtonWidget( + text: mailboxSelected!.getDisplayName(context), + icon: _imagePaths.icChevronDown, + textStyle: TitleAppBarThreadWidgetStyle.titleStyle, + backgroundColor: Colors.transparent, + iconAlignment: TextDirection.rtl, + mainAxisSize: MainAxisSize.min, + padding: TitleAppBarThreadWidgetStyle.padding, + maxWidth: maxWidth, + flexibleText: true, + maxLines: 1, + tooltipMessage: mailboxSelected!.getDisplayName(context), + onTapActionCallback: openMailboxAction, + ); + } else { + return const SizedBox.shrink(); + } + } else { + return Column( + children: [ + if (mailboxSelected != null) + TMailButtonWidget( + text: mailboxSelected!.getDisplayName(context), + icon: _imagePaths.icChevronDown, + textStyle: TitleAppBarThreadWidgetStyle.titleStyle, + backgroundColor: Colors.transparent, + iconAlignment: TextDirection.rtl, + mainAxisSize: MainAxisSize.min, + padding: TitleAppBarThreadWidgetStyle.padding, + maxWidth: maxWidth, + flexibleText: true, + maxLines: 1, + tooltipMessage: mailboxSelected!.getDisplayName(context), + onTapActionCallback: openMailboxAction, + ), + Text( + filterOption.getTitle(context), + style: TitleAppBarThreadWidgetStyle.filterOptionStyle + ) + ], + ); + } + } +}