TF-1142 remove unread/read button in draft folder

This commit is contained in:
sherlock
2022-11-10 14:56:12 +07:00
committed by Dat H. Pham
parent 0052d74406
commit 5724fd4b4e
6 changed files with 46 additions and 35 deletions
@@ -1232,6 +1232,10 @@ class MailboxDashBoardController extends ReloadableController {
consumeState(appGridDashboardController.showDashboardAction()); consumeState(appGridDashboardController.showDashboardAction());
} }
bool isAbleMarkAllAsRead(){
return !searchController.isSearchEmailRunning && selectedMailbox.value != null && selectedMailbox.value!.isDrafts;
}
@override @override
void onClose() { void onClose() {
_emailReceiveManager.closeEmailReceiveManagerStream(); _emailReceiveManager.closeEmailReceiveManagerStream();
@@ -10,6 +10,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dar
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/app_grid_dashboard_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/app_grid_dashboard_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
@@ -38,6 +39,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
final SearchController searchController = Get.find<SearchController>(); final SearchController searchController = Get.find<SearchController>();
final AppGridDashboardController appGridDashboardController = Get.find<AppGridDashboardController>(); final AppGridDashboardController appGridDashboardController = Get.find<AppGridDashboardController>();
final mailBoxDashboardController = Get.find<MailboxDashBoardController>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -350,7 +352,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
..onPressActionClick(() => controller.dispatchAction(SelectionAllEmailAction())) ..onPressActionClick(() => controller.dispatchAction(SelectionAllEmailAction()))
..text(AppLocalizations.of(context).select_all, isVertical: false)) ..text(AppLocalizations.of(context).select_all, isVertical: false))
.build(), .build(),
if (!searchController.isSearchEmailRunning) if (mailBoxDashboardController.isAbleMarkAllAsRead())
Padding( Padding(
padding: const EdgeInsets.only(left: 16), padding: const EdgeInsets.only(left: 16),
child: (ButtonBuilder(imagePaths.icMarkAllAsRead) child: (ButtonBuilder(imagePaths.icMarkAllAsRead)
@@ -105,7 +105,8 @@ class AppBarThreadWidgetBuilder extends StatelessWidget {
fontSize: 17, fontSize: 17,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: AppColor.colorTextButton))), color: AppColor.colorTextButton))),
buildIconWeb( if(_currentMailbox?.isDrafts == false)
buildIconWeb(
minSize: 25, minSize: 25,
iconSize: 25, iconSize: 25,
iconPadding: const EdgeInsets.all(5), iconPadding: const EdgeInsets.all(5),
@@ -44,18 +44,19 @@ class BottomBarThreadSelectionWidget {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Expanded(child: (ButtonBuilder(_listSelectionEmail.isAllEmailRead ? _imagePaths.icUnread : _imagePaths.icRead) if(_currentMailbox?.isDrafts == false)
..key(const Key('button_mark_read_email')) Expanded(child: (ButtonBuilder(_listSelectionEmail.isAllEmailRead ? _imagePaths.icUnread : _imagePaths.icRead)
..paddingIcon(const EdgeInsets.symmetric(horizontal: 8, vertical: 4)) ..key(const Key('button_mark_read_email'))
..textStyle(const TextStyle(fontSize: 12, color: AppColor.colorTextButton)) ..paddingIcon(const EdgeInsets.symmetric(horizontal: 8, vertical: 4))
..onPressActionClick(() { ..textStyle(const TextStyle(fontSize: 12, color: AppColor.colorTextButton))
if (_onPressEmailSelectionActionClick != null) { ..onPressActionClick(() {
_onPressEmailSelectionActionClick!( if (_onPressEmailSelectionActionClick != null) {
_listSelectionEmail.isAllEmailRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead, _onPressEmailSelectionActionClick!(
_listSelectionEmail); _listSelectionEmail.isAllEmailRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead,
}}) _listSelectionEmail);
..text(_textButtonMarkAsRead, isVertical: _responsiveUtils.isMobile(_context))) }})
.build()), ..text(_textButtonMarkAsRead, isVertical: _responsiveUtils.isMobile(_context)))
.build()),
Expanded(child: (ButtonBuilder(_listSelectionEmail.isAllEmailStarred ? _imagePaths.icUnStar : _imagePaths.icStar) Expanded(child: (ButtonBuilder(_listSelectionEmail.isAllEmailStarred ? _imagePaths.icUnStar : _imagePaths.icStar)
..key(const Key('button_mark_as_star_email')) ..key(const Key('button_mark_as_star_email'))
..paddingIcon(const EdgeInsets.symmetric(horizontal: 8, vertical: 4)) ..paddingIcon(const EdgeInsets.symmetric(horizontal: 8, vertical: 4))
@@ -386,27 +386,28 @@ class EmailTileBuilder with BaseEmailItemTile {
Widget _buildListActionButtonWhenHover() { Widget _buildListActionButtonWhenHover() {
return Row(children: [ return Row(children: [
buildIconWeb( if(!_presentationEmail.isDraft)
minSize: 18, buildIconWeb(
iconSize: 18, minSize: 18,
iconPadding: const EdgeInsets.all(5), iconSize: 18,
splashRadius: 10, iconPadding: const EdgeInsets.all(5),
icon: SvgPicture.asset( splashRadius: 10,
_presentationEmail.hasRead icon: SvgPicture.asset(
? imagePaths.icUnread _presentationEmail.hasRead
: imagePaths.icRead, ? imagePaths.icRead
color: AppColor.colorActionButtonHover, : imagePaths.icUnread,
width: 16, color: AppColor.colorActionButtonHover,
height: 16, width: 16,
fit: BoxFit.fill), height: 16,
tooltip: _presentationEmail.hasRead fit: BoxFit.fill),
? AppLocalizations.of(_context).mark_as_unread tooltip: _presentationEmail.hasRead
: AppLocalizations.of(_context).mark_as_read, ? AppLocalizations.of(_context).mark_as_unread
onTap: () => _emailActionClick?.call( : AppLocalizations.of(_context).mark_as_read,
_presentationEmail.hasRead onTap: () => _emailActionClick?.call(
? EmailActionType.markAsUnread _presentationEmail.hasRead
: EmailActionType.markAsRead, ? EmailActionType.markAsUnread
_presentationEmail)), : EmailActionType.markAsRead,
_presentationEmail)),
const SizedBox(width: 5), const SizedBox(width: 5),
if (mailboxCurrent?.isDrafts == false) if (mailboxCurrent?.isDrafts == false)
... [ ... [
+2
View File
@@ -66,6 +66,8 @@ class PresentationEmail with EquatableMixin {
bool get hasStarred => keywords?.containsKey(KeyWordIdentifier.emailFlagged) == true; bool get hasStarred => keywords?.containsKey(KeyWordIdentifier.emailFlagged) == true;
bool get isDraft => keywords?.containsKey(KeyWordIdentifier.emailDraft) == true;
bool get withAttachments => hasAttachment == true; bool get withAttachments => hasAttachment == true;
String get mailboxName => mailboxNames?.first?.name ?? ''; String get mailboxName => mailboxNames?.first?.name ?? '';