diff --git a/lib/features/thread/presentation/styles/app_bar/default_web_app_bar_thread_widget_style.dart b/lib/features/thread/presentation/styles/app_bar/default_web_app_bar_thread_widget_style.dart index 01591ffaf..254cf40e0 100644 --- a/lib/features/thread/presentation/styles/app_bar/default_web_app_bar_thread_widget_style.dart +++ b/lib/features/thread/presentation/styles/app_bar/default_web_app_bar_thread_widget_style.dart @@ -8,15 +8,15 @@ import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option class DefaultWebAppBarThreadWidgetStyle { static const double buttonMaxWidth = 80; static const double titleOffset = 180; - static const double minHeight = 56; + static const double height = 56; static const Color backgroundColor = Colors.white; static EdgeInsetsGeometry getPadding(BuildContext context, ResponsiveUtils responsiveUtils) { if (responsiveUtils.isMobile(context) || responsiveUtils.isTabletLarge(context)) { - return const EdgeInsets.symmetric(horizontal: 12, vertical: 8); + return const EdgeInsets.symmetric(horizontal: 12); } else { - return const EdgeInsets.symmetric(horizontal: 24, vertical: 8); + return const EdgeInsets.symmetric(horizontal: 24); } } static const EdgeInsetsGeometry mailboxMenuPadding = EdgeInsets.all(5); diff --git a/lib/features/thread/presentation/styles/app_bar/selection_web_app_bar_thread_widget_style.dart b/lib/features/thread/presentation/styles/app_bar/selection_web_app_bar_thread_widget_style.dart index 727c33b6e..43d7a9ea7 100644 --- a/lib/features/thread/presentation/styles/app_bar/selection_web_app_bar_thread_widget_style.dart +++ b/lib/features/thread/presentation/styles/app_bar/selection_web_app_bar_thread_widget_style.dart @@ -5,7 +5,7 @@ import 'package:core/presentation/utils/theme_utils.dart'; import 'package:flutter/material.dart'; class SelectionWebAppBarThreadWidgetStyle { - static const double minHeight = 56; + static const double height = 56; static const double iconSize = 20; static const Color backgroundColor = Colors.white; @@ -13,9 +13,9 @@ class SelectionWebAppBarThreadWidgetStyle { static EdgeInsetsGeometry getPadding(BuildContext context, ResponsiveUtils responsiveUtils) { if (responsiveUtils.isMobile(context) || responsiveUtils.isTabletLarge(context)) { - return const EdgeInsets.symmetric(horizontal: 16, vertical: 8); + return const EdgeInsets.symmetric(horizontal: 16); } else { - return const EdgeInsets.symmetric(horizontal: 24, vertical: 8); + return const EdgeInsets.symmetric(horizontal: 24); } } diff --git a/lib/features/thread/presentation/thread_view.dart b/lib/features/thread/presentation/thread_view.dart index 7aed43b52..4a8eb5043 100644 --- a/lib/features/thread/presentation/thread_view.dart +++ b/lib/features/thread/presentation/thread_view.dart @@ -41,7 +41,7 @@ import 'package:tmail_ui_user/features/thread/presentation/styles/item_email_til import 'package:tmail_ui_user/features/thread/presentation/styles/scroll_to_top_button_widget_styles.dart'; import 'package:tmail_ui_user/features/thread/presentation/styles/thread_view_style.dart'; import 'package:tmail_ui_user/features/thread/presentation/thread_controller.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart'; +import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/mobile_app_bar_thread_widget.dart'; import 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_builder.dart' if (dart.library.html) 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_web_builder.dart'; import 'package:tmail_ui_user/features/thread/presentation/widgets/empty_emails_widget.dart'; @@ -75,7 +75,7 @@ class ThreadView extends GetWidget if (!controller.responsiveUtils.isWebDesktop(context)) ... [ Obx(() { - return AppBarThreadWidget( + return MobileAppBarThreadWidget( responsiveUtils: controller.responsiveUtils, imagePaths: controller.imagePaths, mailboxSelected: controller.selectedMailbox, @@ -84,7 +84,6 @@ class ThreadView extends GetWidget filterOption: controller.mailboxDashBoardController.filterMessageOption.value, openMailboxAction: controller.openMailboxLeftMenu, onCancelSelectionAction: controller.cancelSelectEmail, - emailSelectionAction: controller.pressEmailSelectionAction, onContextMenuFilterEmailAction: controller.responsiveUtils.isScreenWithShortestSide(context) ? (filterOption) => controller.handleSelectMessageFilter(context, filterOption) : null, diff --git a/lib/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart b/lib/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart deleted file mode 100644 index b04004426..000000000 --- a/lib/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart +++ /dev/null @@ -1,96 +0,0 @@ -import 'package:core/presentation/resources/image_paths.dart'; -import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/platform_info.dart'; -import 'package:flutter/material.dart'; -import 'package:model/email/email_action_type.dart'; -import 'package:model/email/presentation_email.dart'; -import 'package:model/mailbox/presentation_mailbox.dart'; -import 'package:model/mailbox/select_mode.dart'; -import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart'; -import 'package:tmail_ui_user/features/thread/presentation/model/email_selection_action_type.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/mobile_app_bar_thread_widget.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/web_app_bar_thread_widget.dart'; - -typedef OnPopupMenuFilterEmailAction = void Function( - FilterMessageOption option, - RelativeRect position, -); -typedef OnContextMenuFilterEmailAction = void Function( - FilterMessageOption option, -); -typedef OnOpenMailboxMenuActionClick = void Function(); -typedef OnCancelSelectionAction = void Function(); -typedef OnEmailSelectionAction = void Function( - EmailActionType type, - List emails, -); -typedef OnPressEmailSelectionActionClick = void Function( - EmailSelectionActionType type, - List emails, -); - -class AppBarThreadWidget extends StatelessWidget { - final ResponsiveUtils responsiveUtils; - final ImagePaths imagePaths; - final OnPopupMenuFilterEmailAction? onPopupMenuFilterEmailAction; - final OnContextMenuFilterEmailAction? onContextMenuFilterEmailAction; - final OnOpenMailboxMenuActionClick openMailboxAction; - final OnCancelSelectionAction onCancelSelectionAction; - final OnEmailSelectionAction emailSelectionAction; - final PresentationMailbox? mailboxSelected; - final List listEmailSelected; - final SelectMode selectMode; - final FilterMessageOption filterOption; - final OnPressEmailSelectionActionClick? onPressEmailSelectionActionClick; - - const AppBarThreadWidget({ - Key? key, - required this.responsiveUtils, - required this.imagePaths, - required this.mailboxSelected, - required this.listEmailSelected, - required this.selectMode, - required this.filterOption, - required this.openMailboxAction, - required this.onCancelSelectionAction, - required this.emailSelectionAction, - this.onPopupMenuFilterEmailAction, - this.onContextMenuFilterEmailAction, - this.onPressEmailSelectionActionClick, - }) : super(key: key); - - @override - Widget build(BuildContext context) { - if (PlatformInfo.isWeb) { - return WebAppBarThreadWidget( - key: const Key('web_app_bar_thread_widget'), - imagePaths: imagePaths, - responsiveUtils: responsiveUtils, - listEmailSelected: listEmailSelected, - mailboxSelected: mailboxSelected, - selectMode: selectMode, - filterOption: filterOption, - openMailboxAction: openMailboxAction, - onCancelSelectionAction: onCancelSelectionAction, - emailSelectionAction: emailSelectionAction, - onPopupMenuFilterEmailAction: onPopupMenuFilterEmailAction, - onContextMenuFilterEmailAction: onContextMenuFilterEmailAction, - ); - } else { - return MobileAppBarThreadWidget( - key: const Key('mobile_app_bar_thread_widget'), - imagePaths: imagePaths, - responsiveUtils: responsiveUtils, - listEmailSelected: listEmailSelected, - mailboxSelected: mailboxSelected, - selectMode: selectMode, - filterOption: filterOption, - openMailboxAction: openMailboxAction, - onCancelSelectionAction: onCancelSelectionAction, - onPopupMenuFilterEmailAction: onPopupMenuFilterEmailAction, - onContextMenuFilterEmailAction: onContextMenuFilterEmailAction, - onPressEmailSelectionActionClick: onPressEmailSelectionActionClick, - ); - } - } -} diff --git a/lib/features/thread/presentation/widgets/app_bar/default_mobile_app_bar_thread_widget.dart b/lib/features/thread/presentation/widgets/app_bar/default_mobile_app_bar_thread_widget.dart index b7f5a95f8..a4e8715d9 100644 --- a/lib/features/thread/presentation/widgets/app_bar/default_mobile_app_bar_thread_widget.dart +++ b/lib/features/thread/presentation/widgets/app_bar/default_mobile_app_bar_thread_widget.dart @@ -7,7 +7,7 @@ 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/mobile_app_bar_thread_widget_style.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart'; +import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/mobile_app_bar_thread_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; class DefaultMobileAppBarThreadWidget extends StatelessWidget { diff --git a/lib/features/thread/presentation/widgets/app_bar/default_web_app_bar_thread_widget.dart b/lib/features/thread/presentation/widgets/app_bar/default_web_app_bar_thread_widget.dart deleted file mode 100644 index b3dc15256..000000000 --- a/lib/features/thread/presentation/widgets/app_bar/default_web_app_bar_thread_widget.dart +++ /dev/null @@ -1,80 +0,0 @@ - -import 'package:core/presentation/resources/image_paths.dart'; -import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/presentation/utils/style_utils.dart'; -import 'package:core/presentation/views/button/tmail_button_widget.dart'; -import 'package:flutter/material.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/default_web_app_bar_thread_widget_style.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart'; -import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; - -class DefaultWebAppBarThreadWidget extends StatelessWidget { - - final ResponsiveUtils responsiveUtils; - final ImagePaths imagePaths; - final PresentationMailbox? mailboxSelected; - final FilterMessageOption filterOption; - final OnOpenMailboxMenuActionClick openMailboxAction; - final OnPopupMenuFilterEmailAction? onPopupMenuFilterEmailAction; - final OnContextMenuFilterEmailAction? onContextMenuFilterEmailAction; - - const DefaultWebAppBarThreadWidget({ - super.key, - required this.responsiveUtils, - required this.imagePaths, - required this.mailboxSelected, - required this.filterOption, - required this.openMailboxAction, - this.onPopupMenuFilterEmailAction, - this.onContextMenuFilterEmailAction, - }); - - @override - Widget build(BuildContext context) { - return LayoutBuilder(builder: (context, constraints) { - return Container( - color: DefaultWebAppBarThreadWidgetStyle.backgroundColor, - padding: DefaultWebAppBarThreadWidgetStyle.getPadding(context, responsiveUtils), - constraints: const BoxConstraints(minHeight: DefaultWebAppBarThreadWidgetStyle.minHeight), - child: Row( - children: [ - TMailButtonWidget.fromIcon( - key: const Key('mailbox_menu_button'), - icon: imagePaths.icMenuDrawer, - backgroundColor: Colors.transparent, - padding: DefaultWebAppBarThreadWidgetStyle.mailboxMenuPadding, - maxWidth: DefaultWebAppBarThreadWidgetStyle.buttonMaxWidth, - tooltipMessage: AppLocalizations.of(context).openFolderMenu, - onTapActionCallback: openMailboxAction, - ), - Expanded( - child: Padding( - padding: DefaultWebAppBarThreadWidgetStyle.titlePadding, - child: Text( - mailboxSelected?.getDisplayName(context) ?? '', - maxLines: 1, - overflow: CommonTextStyle.defaultTextOverFlow, - softWrap: CommonTextStyle.defaultSoftWrap, - style: DefaultWebAppBarThreadWidgetStyle.titleTextStyle - ), - ), - ), - TMailButtonWidget.fromIcon( - key: const Key('filter_message_button'), - icon: imagePaths.icFilter, - iconColor: DefaultWebAppBarThreadWidgetStyle.getFilterButtonColor(filterOption), - backgroundColor: Colors.transparent, - maxWidth: DefaultWebAppBarThreadWidgetStyle.buttonMaxWidth, - tooltipMessage: AppLocalizations.of(context).filter_messages, - onTapActionCallback: () => onContextMenuFilterEmailAction?.call(filterOption), - onTapActionAtPositionCallback: (position) => onPopupMenuFilterEmailAction?.call(filterOption, position), - ), - ] - ), - ); - }); - } -} diff --git a/lib/features/thread/presentation/widgets/app_bar/mobile_app_bar_thread_widget.dart b/lib/features/thread/presentation/widgets/app_bar/mobile_app_bar_thread_widget.dart index a4662b764..d70c556f4 100644 --- a/lib/features/thread/presentation/widgets/app_bar/mobile_app_bar_thread_widget.dart +++ b/lib/features/thread/presentation/widgets/app_bar/mobile_app_bar_thread_widget.dart @@ -8,10 +8,23 @@ import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:model/mailbox/select_mode.dart'; import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart'; import 'package:tmail_ui_user/features/thread/presentation/model/email_selection_action_type.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart'; import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/default_mobile_app_bar_thread_widget.dart'; import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/selection_mobile_app_bar_thread_widget.dart'; +typedef OnPopupMenuFilterEmailAction = void Function( + FilterMessageOption option, + RelativeRect position, +); +typedef OnContextMenuFilterEmailAction = void Function( + FilterMessageOption option, +); +typedef OnOpenMailboxMenuActionClick = void Function(); +typedef OnCancelSelectionAction = void Function(); +typedef OnPressEmailSelectionActionClick = void Function( + EmailSelectionActionType type, + List emails, +); + class MobileAppBarThreadWidget extends StatelessWidget { final ResponsiveUtils responsiveUtils; final ImagePaths imagePaths; diff --git a/lib/features/thread/presentation/widgets/app_bar/selection_mobile_app_bar_thread_widget.dart b/lib/features/thread/presentation/widgets/app_bar/selection_mobile_app_bar_thread_widget.dart index d371634e9..d2da5acd3 100644 --- a/lib/features/thread/presentation/widgets/app_bar/selection_mobile_app_bar_thread_widget.dart +++ b/lib/features/thread/presentation/widgets/app_bar/selection_mobile_app_bar_thread_widget.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; import 'package:model/email/presentation_email.dart'; import 'package:tmail_ui_user/features/thread/presentation/model/email_selection_action_type.dart'; import 'package:tmail_ui_user/features/thread/presentation/styles/app_bar/mobile_app_bar_thread_widget_style.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart'; +import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/mobile_app_bar_thread_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; class SelectionMobileAppBarThreadWidget extends StatelessWidget { diff --git a/lib/features/thread/presentation/widgets/app_bar/selection_web_app_bar_thread_widget.dart b/lib/features/thread/presentation/widgets/app_bar/selection_web_app_bar_thread_widget.dart deleted file mode 100644 index 4da65137a..000000000 --- a/lib/features/thread/presentation/widgets/app_bar/selection_web_app_bar_thread_widget.dart +++ /dev/null @@ -1,154 +0,0 @@ - -import 'package:core/presentation/resources/image_paths.dart'; -import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/presentation/utils/style_utils.dart'; -import 'package:core/presentation/views/button/tmail_button_widget.dart'; -import 'package:flutter/material.dart'; -import 'package:model/email/email_action_type.dart'; -import 'package:model/email/presentation_email.dart'; -import 'package:model/extensions/list_presentation_email_extension.dart'; -import 'package:model/extensions/presentation_mailbox_extension.dart'; -import 'package:model/mailbox/presentation_mailbox.dart'; -import 'package:tmail_ui_user/features/thread/presentation/styles/app_bar/selection_web_app_bar_thread_widget_style.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart'; -import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; - -class SelectionWebAppBarThreadWidget extends StatelessWidget { - - final ResponsiveUtils responsiveUtils; - final ImagePaths imagePaths; - final PresentationMailbox? mailboxSelected; - final List listEmailSelected; - final OnCancelSelectionAction onCancelSelectionAction; - final OnEmailSelectionAction emailSelectionAction; - - const SelectionWebAppBarThreadWidget({ - super.key, - required this.responsiveUtils, - required this.imagePaths, - required this.listEmailSelected, - required this.mailboxSelected, - required this.onCancelSelectionAction, - required this.emailSelectionAction, - }); - - @override - Widget build(BuildContext context) { - return Container( - color: SelectionWebAppBarThreadWidgetStyle.backgroundColor, - width: double.infinity, - padding: SelectionWebAppBarThreadWidgetStyle.getPadding(context, responsiveUtils), - constraints: const BoxConstraints(minHeight: SelectionWebAppBarThreadWidgetStyle.minHeight), - child: Row( - children: [ - TMailButtonWidget.fromIcon( - key: const Key('cancel_selection_button'), - icon: imagePaths.icCancel, - backgroundColor: Colors.transparent, - iconColor: SelectionWebAppBarThreadWidgetStyle.iconColor, - iconSize: SelectionWebAppBarThreadWidgetStyle.iconSize, - tooltipMessage: AppLocalizations.of(context).cancel, - onTapActionCallback: onCancelSelectionAction, - ), - Expanded( - child: Text( - AppLocalizations.of(context).count_email_selected(listEmailSelected.length), - maxLines: 1, - overflow: CommonTextStyle.defaultTextOverFlow, - softWrap: CommonTextStyle.defaultSoftWrap, - style: SelectionWebAppBarThreadWidgetStyle.emailCounterStyle - ) - ), - if (mailboxSelected?.isDrafts == false) - TMailButtonWidget.fromIcon( - key: const Key('mark_as_read_email_selection_button'), - icon: listEmailSelected.isAllEmailRead - ? imagePaths.icUnread - : imagePaths.icRead, - iconColor: SelectionWebAppBarThreadWidgetStyle.iconColor, - iconSize: SelectionWebAppBarThreadWidgetStyle.iconSize, - backgroundColor: Colors.transparent, - tooltipMessage: listEmailSelected.isAllEmailRead - ? AppLocalizations.of(context).unread - : AppLocalizations.of(context).read, - onTapActionCallback: () { - return emailSelectionAction( - listEmailSelected.isAllEmailRead - ? EmailActionType.markAsUnread - : EmailActionType.markAsRead, - listEmailSelected - ); - }, - ), - TMailButtonWidget.fromIcon( - key: const Key('mark_as_star_email_selection_button'), - icon: listEmailSelected.isAllEmailStarred - ? imagePaths.icUnStar - : imagePaths.icStar, - iconColor: listEmailSelected.isAllEmailStarred - ? SelectionWebAppBarThreadWidgetStyle.iconColor - : null, - iconSize: SelectionWebAppBarThreadWidgetStyle.iconSize, - backgroundColor: Colors.transparent, - tooltipMessage: listEmailSelected.isAllEmailStarred - ? AppLocalizations.of(context).not_starred - : AppLocalizations.of(context).starred, - onTapActionCallback: () { - return emailSelectionAction( - listEmailSelected.isAllEmailStarred - ? EmailActionType.unMarkAsStarred - : EmailActionType.markAsStarred, - listEmailSelected - ); - }, - ), - if (mailboxSelected?.isDrafts == false) - TMailButtonWidget.fromIcon( - key: const Key('move_email_selection_button'), - icon: imagePaths.icMoveMailbox, - iconSize: SelectionWebAppBarThreadWidgetStyle.iconSize, - iconColor: SelectionWebAppBarThreadWidgetStyle.iconColor, - backgroundColor: Colors.transparent, - tooltipMessage: AppLocalizations.of(context).move_message, - onTapActionCallback: () => emailSelectionAction(EmailActionType.moveToMailbox, listEmailSelected), - ), - if (mailboxSelected?.isDrafts == false) - TMailButtonWidget.fromIcon( - key: const Key('mark_as_spam_email_selection_button'), - icon: mailboxSelected?.isSpam == true - ? imagePaths.icNotSpam - : imagePaths.icSpam, - iconColor: SelectionWebAppBarThreadWidgetStyle.iconColor, - iconSize: SelectionWebAppBarThreadWidgetStyle.iconSize, - backgroundColor: Colors.transparent, - tooltipMessage: mailboxSelected?.isSpam == true - ? AppLocalizations.of(context).un_spam - : AppLocalizations.of(context).mark_as_spam, - onTapActionCallback: () { - return mailboxSelected?.isSpam == true - ? emailSelectionAction(EmailActionType.unSpam, listEmailSelected) - : emailSelectionAction(EmailActionType.moveToSpam, listEmailSelected); - }, - ), - TMailButtonWidget.fromIcon( - key: const Key('delete_email_selection_button'), - icon: imagePaths.icDeleteComposer, - iconColor: SelectionWebAppBarThreadWidgetStyle.iconColor, - iconSize: SelectionWebAppBarThreadWidgetStyle.iconSize, - backgroundColor: Colors.transparent, - tooltipMessage: _deletePermanentlyValid - ? AppLocalizations.of(context).delete_permanently - : AppLocalizations.of(context).move_to_trash, - onTapActionCallback: () { - return _deletePermanentlyValid - ? emailSelectionAction(EmailActionType.deletePermanently, listEmailSelected) - : emailSelectionAction(EmailActionType.moveToTrash, listEmailSelected); - }, - ), - ] - ), - ); - } - - bool get _deletePermanentlyValid => mailboxSelected?.isTrash == true || mailboxSelected?.isDrafts == true || mailboxSelected?.isSpam == true; -} 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 deleted file mode 100644 index d4b3db851..000000000 --- a/lib/features/thread/presentation/widgets/app_bar/title_app_bar_thread_widget.dart +++ /dev/null @@ -1,75 +0,0 @@ - -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 - ) - ], - ); - } - } -} diff --git a/lib/features/thread/presentation/widgets/app_bar/web_app_bar_thread_widget.dart b/lib/features/thread/presentation/widgets/app_bar/web_app_bar_thread_widget.dart deleted file mode 100644 index fa2173164..000000000 --- a/lib/features/thread/presentation/widgets/app_bar/web_app_bar_thread_widget.dart +++ /dev/null @@ -1,67 +0,0 @@ - -import 'package:core/presentation/resources/image_paths.dart'; -import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:model/email/presentation_email.dart'; -import 'package:model/mailbox/presentation_mailbox.dart'; -import 'package:model/mailbox/select_mode.dart'; -import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/app_bar_thread_widget.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/default_web_app_bar_thread_widget.dart'; -import 'package:tmail_ui_user/features/thread/presentation/widgets/app_bar/selection_web_app_bar_thread_widget.dart'; - -class WebAppBarThreadWidget extends StatelessWidget { - - final ResponsiveUtils responsiveUtils; - final ImagePaths imagePaths; - final PresentationMailbox? mailboxSelected; - final List listEmailSelected; - final SelectMode selectMode; - final FilterMessageOption filterOption; - final OnOpenMailboxMenuActionClick openMailboxAction; - final OnCancelSelectionAction onCancelSelectionAction; - final OnEmailSelectionAction emailSelectionAction; - final OnPopupMenuFilterEmailAction? onPopupMenuFilterEmailAction; - final OnContextMenuFilterEmailAction? onContextMenuFilterEmailAction; - - const WebAppBarThreadWidget({ - super.key, - required this.responsiveUtils, - required this.imagePaths, - required this.listEmailSelected, - required this.mailboxSelected, - required this.selectMode, - required this.filterOption, - required this.openMailboxAction, - required this.onCancelSelectionAction, - required this.emailSelectionAction, - this.onPopupMenuFilterEmailAction, - this.onContextMenuFilterEmailAction, - }); - - @override - Widget build(BuildContext context) { - if (selectMode == SelectMode.INACTIVE) { - return DefaultWebAppBarThreadWidget( - key: const Key('default_web_app_bar_thread_widget'), - imagePaths: imagePaths, - responsiveUtils: responsiveUtils, - mailboxSelected: mailboxSelected, - filterOption: filterOption, - openMailboxAction: openMailboxAction, - onPopupMenuFilterEmailAction: onPopupMenuFilterEmailAction, - onContextMenuFilterEmailAction: onContextMenuFilterEmailAction, - ); - } else { - return SelectionWebAppBarThreadWidget( - key: const Key('selection_web_app_bar_thread_widget'), - imagePaths: imagePaths, - responsiveUtils: responsiveUtils, - listEmailSelected: listEmailSelected, - mailboxSelected: mailboxSelected, - onCancelSelectionAction: onCancelSelectionAction, - emailSelectionAction: emailSelectionAction, - ); - } - } -}