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
@@ -6,11 +6,11 @@ import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/base/widget/keyboard/keyboard_handler_wrapper.dart';
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.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_bottom_bar_widget.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/widgets/vacation_notification_message_widget.dart';
import 'package:tmail_ui_user/features/thread_detail/domain/state/get_thread_by_id_state.dart';
@@ -40,7 +40,7 @@ class ThreadDetailView extends GetWidget<ThreadDetailController> {
isSearchRunning: controller.isSearchRunning,
closeThreadDetailAction: controller.closeThreadDetailAction,
isThreadDetailEnabled: controller.isThreadDetailEnabled,
mailboxContain: _getMailboxContain(),
backButtonLabel: _getBackButtonLabel(context),
threadActionReady: controller.emailsInThreadDetailInfo.isNotEmpty,
threadDetailIsStarred: controller.threadDetailIsStarred,
threadDetailCanPermanentlyDelete: controller.threadDetailCanPermanentlyDelete,
@@ -235,12 +235,15 @@ class ThreadDetailView extends GetWidget<ThreadDetailController> {
}
}
PresentationMailbox? _getMailboxContain() {
String _getBackButtonLabel(BuildContext context) {
if (controller.isSearchRunning) {
return null;
return '';
}
return controller.mailboxDashBoardController.selectedMailbox.value;
return controller
.mailboxDashBoardController
.selectedMailbox
.value
?.getDisplayName(context) ?? '';
}
bool showLoadingView(Either<Failure, Success> viewState) {
@@ -5,7 +5,6 @@ import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:model/email/email_action_type.dart';
import 'package:model/mailbox/presentation_mailbox.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/main/localizations/app_localizations.dart';
@@ -25,7 +24,7 @@ class ThreadDetailAppBar extends StatelessWidget {
required this.threadDetailIsStarred,
required this.isThreadDetailEnabled,
required this.threadDetailCanPermanentlyDelete,
this.mailboxContain,
required this.backButtonLabel,
this.optionWidgets = const [],
this.onThreadActionClick,
this.onThreadMoreActionClick,
@@ -40,7 +39,7 @@ class ThreadDetailAppBar extends StatelessWidget {
final bool threadDetailIsStarred;
final bool isThreadDetailEnabled;
final bool threadDetailCanPermanentlyDelete;
final PresentationMailbox? mailboxContain;
final String backButtonLabel;
final List<Widget> optionWidgets;
final OnThreadActionClick? onThreadActionClick;
final OnThreadMoreActionClick? onThreadMoreActionClick;
@@ -100,7 +99,7 @@ class ThreadDetailAppBar extends StatelessWidget {
Widget backButton = EmailViewBackButton(
imagePaths: imagePaths,
onBackAction: closeThreadDetailAction,
mailboxContain: mailboxContain,
backButtonLabel: backButtonLabel,
isSearchActivated: isSearchRunning,
maxWidth: constraints.maxWidth,
);