TF-2951 Remove Clean button, Empty Trash/Spam now banner and Filters when there is no email in Spam/Trash folder
This commit is contained in:
+12
@@ -2569,6 +2569,18 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool validateNoEmailsInTrashAndSpamFolder() {
|
||||||
|
return selectedMailbox.value != null
|
||||||
|
&& (selectedMailbox.value!.isTrash || selectedMailbox.value!.isSpam)
|
||||||
|
&& selectedMailbox.value!.countTotalEmails <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool validateNoEmailsInTrashFolder() {
|
||||||
|
return selectedMailbox.value != null
|
||||||
|
&& selectedMailbox.value!.isTrash
|
||||||
|
&& selectedMailbox.value!.countTotalEmails <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
_emailReceiveManager.closeEmailReceiveManagerStream();
|
_emailReceiveManager.closeEmailReceiveManagerStream();
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_portal/flutter_portal.dart';
|
import 'package:flutter_portal/flutter_portal.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
||||||
import 'package:model/extensions/username_extension.dart';
|
import 'package:model/extensions/username_extension.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
|
||||||
import 'package:tmail_ui_user/features/base/widget/popup_item_no_icon_widget.dart';
|
import 'package:tmail_ui_user/features/base/widget/popup_item_no_icon_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
||||||
@@ -293,8 +293,13 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
const SizedBox(width: 16),
|
Obx(() {
|
||||||
Tooltip(
|
if (controller.validateNoEmailsInTrashAndSpamFolder()) {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
} else {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsetsDirectional.only(start: 16),
|
||||||
|
child: Tooltip(
|
||||||
message: AppLocalizations.of(context).selectAllMessagesOfThisPage,
|
message: AppLocalizations.of(context).selectAllMessagesOfThisPage,
|
||||||
child: ElevatedButton.icon(
|
child: ElevatedButton.icon(
|
||||||
onPressed: controller.selectAllEmailAction,
|
onPressed: controller.selectAllEmailAction,
|
||||||
@@ -323,21 +328,30 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (controller.isAbleMarkAllAsRead())
|
);
|
||||||
Padding(
|
}
|
||||||
padding: const EdgeInsetsDirectional.only(start: 16),
|
}),
|
||||||
child: TMailButtonWidget(
|
Obx(() {
|
||||||
|
if (controller.isAbleMarkAllAsRead()) {
|
||||||
|
return TMailButtonWidget(
|
||||||
key: const Key('mark_as_read_emails_button'),
|
key: const Key('mark_as_read_emails_button'),
|
||||||
text: AppLocalizations.of(context).mark_all_as_read,
|
text: AppLocalizations.of(context).mark_all_as_read,
|
||||||
icon: controller.imagePaths.icSelectAll,
|
icon: controller.imagePaths.icSelectAll,
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
|
margin: const EdgeInsetsDirectional.only(start: 16),
|
||||||
iconSize: 16,
|
iconSize: 16,
|
||||||
padding: const EdgeInsetsDirectional.symmetric(horizontal: 12, vertical: 8),
|
padding: const EdgeInsetsDirectional.symmetric(horizontal: 12, vertical: 8),
|
||||||
onTapActionCallback: () => controller.markAsReadMailboxAction(context),
|
onTapActionCallback: () => controller.markAsReadMailboxAction(context),
|
||||||
),
|
);
|
||||||
),
|
} else {
|
||||||
const SizedBox(width: 16),
|
return const SizedBox.shrink();
|
||||||
Obx(() => TMailButtonWidget(
|
}
|
||||||
|
}),
|
||||||
|
Obx(() {
|
||||||
|
if (controller.validateNoEmailsInTrashAndSpamFolder()) {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
} else {
|
||||||
|
return TMailButtonWidget(
|
||||||
key: const Key('filter_emails_button'),
|
key: const Key('filter_emails_button'),
|
||||||
text: controller.filterMessageOption.value == FilterMessageOption.all
|
text: controller.filterMessageOption.value == FilterMessageOption.all
|
||||||
? AppLocalizations.of(context).filter_messages
|
? AppLocalizations.of(context).filter_messages
|
||||||
@@ -345,6 +359,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
icon: controller.filterMessageOption.value.getIconSelected(controller.imagePaths),
|
icon: controller.filterMessageOption.value.getIconSelected(controller.imagePaths),
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
iconSize: 16,
|
iconSize: 16,
|
||||||
|
margin: const EdgeInsetsDirectional.only(start: 16),
|
||||||
padding: const EdgeInsetsDirectional.symmetric(horizontal: 12, vertical: 8),
|
padding: const EdgeInsetsDirectional.symmetric(horizontal: 12, vertical: 8),
|
||||||
backgroundColor: controller.filterMessageOption.value.getBackgroundColor(),
|
backgroundColor: controller.filterMessageOption.value.getBackgroundColor(),
|
||||||
textStyle: controller.filterMessageOption.value.getTextStyle(),
|
textStyle: controller.filterMessageOption.value.getTextStyle(),
|
||||||
@@ -361,19 +376,18 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
)),
|
);
|
||||||
|
}
|
||||||
|
}),
|
||||||
Obx(() {
|
Obx(() {
|
||||||
final mailboxSelected = controller.selectedMailbox.value;
|
if (controller.selectedMailbox.value?.isTrash == true) {
|
||||||
if (mailboxSelected != null && mailboxSelected.role == PresentationMailbox.roleTrash) {
|
return TMailButtonWidget.fromIcon(
|
||||||
return Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.only(start: 16),
|
|
||||||
child: TMailButtonWidget.fromIcon(
|
|
||||||
key: const Key('recover_deleted_messages_button'),
|
key: const Key('recover_deleted_messages_button'),
|
||||||
icon: controller.imagePaths.icRecoverDeletedMessages,
|
icon: controller.imagePaths.icRecoverDeletedMessages,
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
iconSize: 16,
|
iconSize: 16,
|
||||||
|
margin: const EdgeInsetsDirectional.only(start: 16),
|
||||||
onTapActionCallback: () => controller.gotoEmailRecovery(),
|
onTapActionCallback: () => controller.gotoEmailRecovery(),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
|
|||||||
Reference in New Issue
Block a user