TF-3939 Display minor action on menu in mobile search view
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -83,7 +83,7 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
selectMode: controller.mailboxDashBoardController.currentSelectMode.value,
|
||||
filterOption: controller.mailboxDashBoardController.filterMessageOption.value,
|
||||
openMailboxAction: controller.openMailboxLeftMenu,
|
||||
cancelEditThreadAction: controller.cancelSelectEmail,
|
||||
onCancelSelectionAction: controller.cancelSelectEmail,
|
||||
emailSelectionAction: controller.pressEmailSelectionAction,
|
||||
onContextMenuFilterEmailAction: controller.responsiveUtils.isScreenWithShortestSide(context)
|
||||
? (filterOption) => controller.handleSelectMessageFilter(context, filterOption)
|
||||
|
||||
@@ -19,7 +19,7 @@ typedef OnContextMenuFilterEmailAction = void Function(
|
||||
FilterMessageOption option,
|
||||
);
|
||||
typedef OnOpenMailboxMenuActionClick = void Function();
|
||||
typedef OnCancelEditThreadAction = void Function();
|
||||
typedef OnCancelSelectionAction = void Function();
|
||||
typedef OnEmailSelectionAction = void Function(
|
||||
EmailActionType type,
|
||||
List<PresentationEmail> emails,
|
||||
@@ -35,7 +35,7 @@ class AppBarThreadWidget extends StatelessWidget {
|
||||
final OnPopupMenuFilterEmailAction? onPopupMenuFilterEmailAction;
|
||||
final OnContextMenuFilterEmailAction? onContextMenuFilterEmailAction;
|
||||
final OnOpenMailboxMenuActionClick openMailboxAction;
|
||||
final OnCancelEditThreadAction cancelEditThreadAction;
|
||||
final OnCancelSelectionAction onCancelSelectionAction;
|
||||
final OnEmailSelectionAction emailSelectionAction;
|
||||
final PresentationMailbox? mailboxSelected;
|
||||
final List<PresentationEmail> listEmailSelected;
|
||||
@@ -52,7 +52,7 @@ class AppBarThreadWidget extends StatelessWidget {
|
||||
required this.selectMode,
|
||||
required this.filterOption,
|
||||
required this.openMailboxAction,
|
||||
required this.cancelEditThreadAction,
|
||||
required this.onCancelSelectionAction,
|
||||
required this.emailSelectionAction,
|
||||
this.onPopupMenuFilterEmailAction,
|
||||
this.onContextMenuFilterEmailAction,
|
||||
@@ -71,7 +71,7 @@ class AppBarThreadWidget extends StatelessWidget {
|
||||
selectMode: selectMode,
|
||||
filterOption: filterOption,
|
||||
openMailboxAction: openMailboxAction,
|
||||
cancelEditThreadAction: cancelEditThreadAction,
|
||||
onCancelSelectionAction: onCancelSelectionAction,
|
||||
emailSelectionAction: emailSelectionAction,
|
||||
onPopupMenuFilterEmailAction: onPopupMenuFilterEmailAction,
|
||||
onContextMenuFilterEmailAction: onContextMenuFilterEmailAction,
|
||||
@@ -86,7 +86,7 @@ class AppBarThreadWidget extends StatelessWidget {
|
||||
selectMode: selectMode,
|
||||
filterOption: filterOption,
|
||||
openMailboxAction: openMailboxAction,
|
||||
cancelEditThreadAction: cancelEditThreadAction,
|
||||
onCancelSelectionAction: onCancelSelectionAction,
|
||||
onPopupMenuFilterEmailAction: onPopupMenuFilterEmailAction,
|
||||
onContextMenuFilterEmailAction: onContextMenuFilterEmailAction,
|
||||
onPressEmailSelectionActionClick: onPressEmailSelectionActionClick,
|
||||
|
||||
+40
-50
@@ -3,9 +3,7 @@ import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
||||
import 'package:flutter/material.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/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';
|
||||
@@ -17,73 +15,65 @@ class DefaultMobileAppBarThreadWidget extends StatelessWidget {
|
||||
final ResponsiveUtils responsiveUtils;
|
||||
final ImagePaths imagePaths;
|
||||
final PresentationMailbox? mailboxSelected;
|
||||
final List<PresentationEmail> listEmailSelected;
|
||||
final SelectMode selectMode;
|
||||
final FilterMessageOption filterOption;
|
||||
final OnOpenMailboxMenuActionClick openMailboxAction;
|
||||
final OnPopupMenuFilterEmailAction? onPopupMenuFilterEmailAction;
|
||||
final OnContextMenuFilterEmailAction? onContextMenuFilterEmailAction;
|
||||
final OnCancelEditThreadAction cancelEditThreadAction;
|
||||
|
||||
const DefaultMobileAppBarThreadWidget({
|
||||
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.cancelEditThreadAction,
|
||||
this.onPopupMenuFilterEmailAction,
|
||||
this.onContextMenuFilterEmailAction,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return LayoutBuilder(builder: (context, constraints) {
|
||||
return Container(
|
||||
color: MobileAppBarThreadWidgetStyle.backgroundColor,
|
||||
padding: MobileAppBarThreadWidgetStyle.getPadding(
|
||||
context,
|
||||
responsiveUtils,
|
||||
),
|
||||
height: MobileAppBarThreadWidgetStyle.height,
|
||||
child: Row(
|
||||
children: [
|
||||
TMailButtonWidget.fromIcon(
|
||||
key: const Key('mobile_mailbox_menu_button'),
|
||||
icon: imagePaths.icMenuDrawer,
|
||||
backgroundColor: Colors.transparent,
|
||||
padding: MobileAppBarThreadWidgetStyle.mailboxMenuPadding,
|
||||
maxWidth: MobileAppBarThreadWidgetStyle.buttonMaxWidth,
|
||||
tooltipMessage: AppLocalizations.of(context).openFolderMenu,
|
||||
onTapActionCallback: openMailboxAction,
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: MobileAppBarThreadWidgetStyle.titlePadding,
|
||||
child: Text(
|
||||
mailboxSelected?.getDisplayName(context) ?? '',
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: MobileAppBarThreadWidgetStyle.titleTextStyle
|
||||
),
|
||||
return Container(
|
||||
color: MobileAppBarThreadWidgetStyle.backgroundColor,
|
||||
padding: MobileAppBarThreadWidgetStyle.getPadding(
|
||||
context,
|
||||
responsiveUtils,
|
||||
),
|
||||
height: MobileAppBarThreadWidgetStyle.height,
|
||||
child: Row(
|
||||
children: [
|
||||
TMailButtonWidget.fromIcon(
|
||||
key: const Key('mobile_mailbox_menu_button'),
|
||||
icon: imagePaths.icMenuDrawer,
|
||||
backgroundColor: Colors.transparent,
|
||||
padding: MobileAppBarThreadWidgetStyle.mailboxMenuPadding,
|
||||
maxWidth: MobileAppBarThreadWidgetStyle.buttonMaxWidth,
|
||||
tooltipMessage: AppLocalizations.of(context).openFolderMenu,
|
||||
onTapActionCallback: openMailboxAction,
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: MobileAppBarThreadWidgetStyle.titlePadding,
|
||||
child: Text(
|
||||
mailboxSelected?.getDisplayName(context) ?? '',
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: MobileAppBarThreadWidgetStyle.titleTextStyle,
|
||||
),
|
||||
),
|
||||
TMailButtonWidget.fromIcon(
|
||||
key: const Key('mobile_filter_message_button'),
|
||||
icon: imagePaths.icFilter,
|
||||
iconColor: MobileAppBarThreadWidgetStyle.getFilterButtonColor(filterOption),
|
||||
backgroundColor: Colors.transparent,
|
||||
maxWidth: MobileAppBarThreadWidgetStyle.buttonMaxWidth,
|
||||
tooltipMessage: AppLocalizations.of(context).filter_messages,
|
||||
onTapActionCallback: () => onContextMenuFilterEmailAction?.call(filterOption),
|
||||
onTapActionAtPositionCallback: (position) => onPopupMenuFilterEmailAction?.call(filterOption, position),
|
||||
),
|
||||
]
|
||||
),
|
||||
);
|
||||
});
|
||||
),
|
||||
TMailButtonWidget.fromIcon(
|
||||
key: const Key('mobile_filter_message_button'),
|
||||
icon: imagePaths.icFilter,
|
||||
iconColor: MobileAppBarThreadWidgetStyle.getFilterButtonColor(filterOption),
|
||||
backgroundColor: Colors.transparent,
|
||||
maxWidth: MobileAppBarThreadWidgetStyle.buttonMaxWidth,
|
||||
tooltipMessage: AppLocalizations.of(context).filter_messages,
|
||||
onTapActionCallback: () => onContextMenuFilterEmailAction?.call(filterOption),
|
||||
onTapActionAtPositionCallback: (position) => onPopupMenuFilterEmailAction?.call(filterOption, position),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ class MobileAppBarThreadWidget extends StatelessWidget {
|
||||
final OnOpenMailboxMenuActionClick openMailboxAction;
|
||||
final OnPopupMenuFilterEmailAction? onPopupMenuFilterEmailAction;
|
||||
final OnContextMenuFilterEmailAction? onContextMenuFilterEmailAction;
|
||||
final OnCancelEditThreadAction cancelEditThreadAction;
|
||||
final OnCancelSelectionAction onCancelSelectionAction;
|
||||
final OnPressEmailSelectionActionClick? onPressEmailSelectionActionClick;
|
||||
|
||||
const MobileAppBarThreadWidget({
|
||||
@@ -34,7 +34,7 @@ class MobileAppBarThreadWidget extends StatelessWidget {
|
||||
required this.selectMode,
|
||||
required this.filterOption,
|
||||
required this.openMailboxAction,
|
||||
required this.cancelEditThreadAction,
|
||||
required this.onCancelSelectionAction,
|
||||
this.onPopupMenuFilterEmailAction,
|
||||
this.onContextMenuFilterEmailAction,
|
||||
this.onPressEmailSelectionActionClick,
|
||||
@@ -62,7 +62,7 @@ class MobileAppBarThreadWidget extends StatelessWidget {
|
||||
imagePaths: imagePaths,
|
||||
responsiveUtils: responsiveUtils,
|
||||
selectedEmails: listEmailSelected,
|
||||
cancelEditThreadAction: cancelEditThreadAction,
|
||||
onCancelSelectionAction: onCancelSelectionAction,
|
||||
emailSelectionActionTypes: actionTypes,
|
||||
onPressEmailSelectionActionClick: (type, emails) =>
|
||||
onPressEmailSelectionActionClick?.call(type, emails),
|
||||
@@ -71,12 +71,9 @@ class MobileAppBarThreadWidget extends StatelessWidget {
|
||||
return DefaultMobileAppBarThreadWidget(
|
||||
imagePaths: imagePaths,
|
||||
responsiveUtils: responsiveUtils,
|
||||
listEmailSelected: listEmailSelected,
|
||||
mailboxSelected: mailboxSelected,
|
||||
selectMode: selectMode,
|
||||
filterOption: filterOption,
|
||||
openMailboxAction: openMailboxAction,
|
||||
cancelEditThreadAction: cancelEditThreadAction,
|
||||
onPopupMenuFilterEmailAction: onPopupMenuFilterEmailAction,
|
||||
onContextMenuFilterEmailAction: onContextMenuFilterEmailAction,
|
||||
);
|
||||
|
||||
+6
-4
@@ -14,7 +14,8 @@ class SelectionMobileAppBarThreadWidget extends StatelessWidget {
|
||||
final List<PresentationEmail> selectedEmails;
|
||||
final List<EmailSelectionActionType> emailSelectionActionTypes;
|
||||
final OnPressEmailSelectionActionClick onPressEmailSelectionActionClick;
|
||||
final OnCancelEditThreadAction cancelEditThreadAction;
|
||||
final OnCancelSelectionAction onCancelSelectionAction;
|
||||
final EdgeInsetsGeometry? padding;
|
||||
|
||||
const SelectionMobileAppBarThreadWidget({
|
||||
super.key,
|
||||
@@ -23,14 +24,15 @@ class SelectionMobileAppBarThreadWidget extends StatelessWidget {
|
||||
required this.selectedEmails,
|
||||
required this.emailSelectionActionTypes,
|
||||
required this.onPressEmailSelectionActionClick,
|
||||
required this.cancelEditThreadAction,
|
||||
required this.onCancelSelectionAction,
|
||||
this.padding,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
color: MobileAppBarThreadWidgetStyle.backgroundColor,
|
||||
padding: MobileAppBarThreadWidgetStyle.getPadding(
|
||||
padding: padding ?? MobileAppBarThreadWidgetStyle.getPadding(
|
||||
context,
|
||||
responsiveUtils,
|
||||
),
|
||||
@@ -54,7 +56,7 @@ class SelectionMobileAppBarThreadWidget extends StatelessWidget {
|
||||
flexibleText: true,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
maxLines: 1,
|
||||
onTapActionCallback: cancelEditThreadAction,
|
||||
onTapActionCallback: onCancelSelectionAction,
|
||||
),
|
||||
)
|
||||
],
|
||||
|
||||
+3
-12
@@ -9,7 +9,6 @@ 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/domain/model/filter_message_option.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';
|
||||
@@ -20,12 +19,8 @@ class SelectionWebAppBarThreadWidget extends StatelessWidget {
|
||||
final ImagePaths imagePaths;
|
||||
final PresentationMailbox? mailboxSelected;
|
||||
final List<PresentationEmail> listEmailSelected;
|
||||
final FilterMessageOption filterOption;
|
||||
final OnOpenMailboxMenuActionClick openMailboxAction;
|
||||
final OnCancelEditThreadAction cancelEditThreadAction;
|
||||
final OnCancelSelectionAction onCancelSelectionAction;
|
||||
final OnEmailSelectionAction emailSelectionAction;
|
||||
final OnPopupMenuFilterEmailAction? onPopupMenuFilterEmailAction;
|
||||
final OnContextMenuFilterEmailAction? onContextMenuFilterEmailAction;
|
||||
|
||||
const SelectionWebAppBarThreadWidget({
|
||||
super.key,
|
||||
@@ -33,12 +28,8 @@ class SelectionWebAppBarThreadWidget extends StatelessWidget {
|
||||
required this.imagePaths,
|
||||
required this.listEmailSelected,
|
||||
required this.mailboxSelected,
|
||||
required this.filterOption,
|
||||
required this.openMailboxAction,
|
||||
required this.cancelEditThreadAction,
|
||||
required this.onCancelSelectionAction,
|
||||
required this.emailSelectionAction,
|
||||
this.onPopupMenuFilterEmailAction,
|
||||
this.onContextMenuFilterEmailAction,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -57,7 +48,7 @@ class SelectionWebAppBarThreadWidget extends StatelessWidget {
|
||||
iconColor: SelectionWebAppBarThreadWidgetStyle.iconColor,
|
||||
iconSize: SelectionWebAppBarThreadWidgetStyle.iconSize,
|
||||
tooltipMessage: AppLocalizations.of(context).cancel,
|
||||
onTapActionCallback: cancelEditThreadAction,
|
||||
onTapActionCallback: onCancelSelectionAction,
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
|
||||
@@ -19,7 +19,7 @@ class WebAppBarThreadWidget extends StatelessWidget {
|
||||
final SelectMode selectMode;
|
||||
final FilterMessageOption filterOption;
|
||||
final OnOpenMailboxMenuActionClick openMailboxAction;
|
||||
final OnCancelEditThreadAction cancelEditThreadAction;
|
||||
final OnCancelSelectionAction onCancelSelectionAction;
|
||||
final OnEmailSelectionAction emailSelectionAction;
|
||||
final OnPopupMenuFilterEmailAction? onPopupMenuFilterEmailAction;
|
||||
final OnContextMenuFilterEmailAction? onContextMenuFilterEmailAction;
|
||||
@@ -33,7 +33,7 @@ class WebAppBarThreadWidget extends StatelessWidget {
|
||||
required this.selectMode,
|
||||
required this.filterOption,
|
||||
required this.openMailboxAction,
|
||||
required this.cancelEditThreadAction,
|
||||
required this.onCancelSelectionAction,
|
||||
required this.emailSelectionAction,
|
||||
this.onPopupMenuFilterEmailAction,
|
||||
this.onContextMenuFilterEmailAction,
|
||||
@@ -59,12 +59,8 @@ class WebAppBarThreadWidget extends StatelessWidget {
|
||||
responsiveUtils: responsiveUtils,
|
||||
listEmailSelected: listEmailSelected,
|
||||
mailboxSelected: mailboxSelected,
|
||||
filterOption: filterOption,
|
||||
openMailboxAction: openMailboxAction,
|
||||
cancelEditThreadAction: cancelEditThreadAction,
|
||||
onCancelSelectionAction: onCancelSelectionAction,
|
||||
emailSelectionAction: emailSelectionAction,
|
||||
onPopupMenuFilterEmailAction: onPopupMenuFilterEmailAction,
|
||||
onContextMenuFilterEmailAction: onContextMenuFilterEmailAction,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user