TF-1715 Perform email actions in Favorite folder

This commit is contained in:
dab246
2025-10-30 14:44:10 +07:00
committed by Dat H. Pham
parent dfaf745ce9
commit fc6cc5719b
9 changed files with 41 additions and 30 deletions
@@ -26,6 +26,7 @@ import 'package:model/email/presentation_email.dart';
import 'package:model/email/read_actions.dart';
import 'package:model/extensions/email_address_extension.dart';
import 'package:model/extensions/list_email_address_extension.dart';
import 'package:model/extensions/mailbox_id_extension.dart';
import 'package:model/extensions/presentation_email_extension.dart';
import 'package:model/extensions/presentation_mailbox_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
@@ -713,9 +714,11 @@ class EmailActionReactor {
PresentationMailbox? selectedMailbox,
bool isSearchEmailRunning = false,
}) {
if (selectedMailbox == null || isSearchEmailRunning) {
if (selectedMailbox == null ||
isSearchEmailRunning ||
selectedMailbox.id.isFavoriteMailboxId == true) {
return presentationEmail.findMailboxContain(mapMailbox);
}
}
return selectedMailbox;
}
@@ -12,6 +12,7 @@ import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
import 'package:tmail_ui_user/features/email/presentation/styles/email_view_app_bar_widget_styles.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_view_back_button.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
typedef OnEmailActionClick = void Function(PresentationEmail, EmailActionType);
@@ -81,7 +82,7 @@ class EmailViewAppBarWidget extends StatelessWidget {
child: EmailViewBackButton(
imagePaths: _imagePaths,
onBackAction: onBackAction,
mailboxContain: mailboxContain,
backButtonLabel: mailboxContain?.getDisplayName(context) ?? '',
isSearchActivated: isSearchActivated,
maxWidth: constraints.maxWidth,
),
@@ -3,9 +3,7 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/email/presentation/styles/email_view_back_button_styles.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class EmailViewBackButton extends StatelessWidget {
@@ -14,7 +12,7 @@ class EmailViewBackButton extends StatelessWidget {
final bool isSearchActivated;
final VoidCallback onBackAction;
final double maxWidth;
final PresentationMailbox? mailboxContain;
final String backButtonLabel;
const EmailViewBackButton({
super.key,
@@ -22,14 +20,14 @@ class EmailViewBackButton extends StatelessWidget {
required this.onBackAction,
required this.isSearchActivated,
required this.maxWidth,
this.mailboxContain,
required this.backButtonLabel,
});
@override
Widget build(BuildContext context) {
if (!isSearchActivated) {
return TMailButtonWidget(
text: mailboxContain?.getDisplayName(context) ?? '',
text: backButtonLabel,
icon: DirectionUtils.isDirectionRTLByLanguage(context)
? imagePaths.icArrowRight
: imagePaths.icBack,