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());
}
bool isAbleMarkAllAsRead(){
return !searchController.isSearchEmailRunning && selectedMailbox.value != null && selectedMailbox.value!.isDrafts;
}
@override
void onClose() {
_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/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/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/model/composer_overlay_state.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 AppGridDashboardController appGridDashboardController = Get.find<AppGridDashboardController>();
final mailBoxDashboardController = Get.find<MailboxDashBoardController>();
@override
Widget build(BuildContext context) {
@@ -350,7 +352,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
..onPressActionClick(() => controller.dispatchAction(SelectionAllEmailAction()))
..text(AppLocalizations.of(context).select_all, isVertical: false))
.build(),
if (!searchController.isSearchEmailRunning)
if (mailBoxDashboardController.isAbleMarkAllAsRead())
Padding(
padding: const EdgeInsets.only(left: 16),
child: (ButtonBuilder(imagePaths.icMarkAllAsRead)
@@ -105,7 +105,8 @@ class AppBarThreadWidgetBuilder extends StatelessWidget {
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorTextButton))),
buildIconWeb(
if(_currentMailbox?.isDrafts == false)
buildIconWeb(
minSize: 25,
iconSize: 25,
iconPadding: const EdgeInsets.all(5),
@@ -44,18 +44,19 @@ class BottomBarThreadSelectionWidget {
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(child: (ButtonBuilder(_listSelectionEmail.isAllEmailRead ? _imagePaths.icUnread : _imagePaths.icRead)
..key(const Key('button_mark_read_email'))
..paddingIcon(const EdgeInsets.symmetric(horizontal: 8, vertical: 4))
..textStyle(const TextStyle(fontSize: 12, color: AppColor.colorTextButton))
..onPressActionClick(() {
if (_onPressEmailSelectionActionClick != null) {
_onPressEmailSelectionActionClick!(
_listSelectionEmail.isAllEmailRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead,
_listSelectionEmail);
}})
..text(_textButtonMarkAsRead, isVertical: _responsiveUtils.isMobile(_context)))
.build()),
if(_currentMailbox?.isDrafts == false)
Expanded(child: (ButtonBuilder(_listSelectionEmail.isAllEmailRead ? _imagePaths.icUnread : _imagePaths.icRead)
..key(const Key('button_mark_read_email'))
..paddingIcon(const EdgeInsets.symmetric(horizontal: 8, vertical: 4))
..textStyle(const TextStyle(fontSize: 12, color: AppColor.colorTextButton))
..onPressActionClick(() {
if (_onPressEmailSelectionActionClick != null) {
_onPressEmailSelectionActionClick!(
_listSelectionEmail.isAllEmailRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead,
_listSelectionEmail);
}})
..text(_textButtonMarkAsRead, isVertical: _responsiveUtils.isMobile(_context)))
.build()),
Expanded(child: (ButtonBuilder(_listSelectionEmail.isAllEmailStarred ? _imagePaths.icUnStar : _imagePaths.icStar)
..key(const Key('button_mark_as_star_email'))
..paddingIcon(const EdgeInsets.symmetric(horizontal: 8, vertical: 4))
@@ -386,27 +386,28 @@ class EmailTileBuilder with BaseEmailItemTile {
Widget _buildListActionButtonWhenHover() {
return Row(children: [
buildIconWeb(
minSize: 18,
iconSize: 18,
iconPadding: const EdgeInsets.all(5),
splashRadius: 10,
icon: SvgPicture.asset(
_presentationEmail.hasRead
? imagePaths.icUnread
: imagePaths.icRead,
color: AppColor.colorActionButtonHover,
width: 16,
height: 16,
fit: BoxFit.fill),
tooltip: _presentationEmail.hasRead
? AppLocalizations.of(_context).mark_as_unread
: AppLocalizations.of(_context).mark_as_read,
onTap: () => _emailActionClick?.call(
_presentationEmail.hasRead
? EmailActionType.markAsUnread
: EmailActionType.markAsRead,
_presentationEmail)),
if(!_presentationEmail.isDraft)
buildIconWeb(
minSize: 18,
iconSize: 18,
iconPadding: const EdgeInsets.all(5),
splashRadius: 10,
icon: SvgPicture.asset(
_presentationEmail.hasRead
? imagePaths.icRead
: imagePaths.icUnread,
color: AppColor.colorActionButtonHover,
width: 16,
height: 16,
fit: BoxFit.fill),
tooltip: _presentationEmail.hasRead
? AppLocalizations.of(_context).mark_as_unread
: AppLocalizations.of(_context).mark_as_read,
onTap: () => _emailActionClick?.call(
_presentationEmail.hasRead
? EmailActionType.markAsUnread
: EmailActionType.markAsRead,
_presentationEmail)),
const SizedBox(width: 5),
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 isDraft => keywords?.containsKey(KeyWordIdentifier.emailDraft) == true;
bool get withAttachments => hasAttachment == true;
String get mailboxName => mailboxNames?.first?.name ?? '';