TF-1715 Load emails in favorite folder with filters
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:core/presentation/views/list/tree_view.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
||||
import 'package:model/extensions/session_extension.dart';
|
||||
import 'package:model/mailbox/expand_mode.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
@@ -196,6 +197,7 @@ abstract class BaseMailboxView extends GetWidget<MailboxController>
|
||||
.mailboxDashBoardController
|
||||
.selectedMailbox
|
||||
.value,
|
||||
isHighlighted: isFolderHighlighted(mailboxNode),
|
||||
onOpenMailboxFolderClick: (mailboxNode) =>
|
||||
mailboxNode != null
|
||||
? controller.openMailbox(context, mailboxNode.item)
|
||||
@@ -240,6 +242,17 @@ abstract class BaseMailboxView extends GetWidget<MailboxController>
|
||||
}).toList();
|
||||
}
|
||||
|
||||
bool get isSearchByStarredOnly {
|
||||
final searchController =
|
||||
controller.mailboxDashBoardController.searchController;
|
||||
|
||||
return searchController.isSearchEmailRunning &&
|
||||
searchController.searchEmailFilter.value.isOnlyStarredApplied;
|
||||
}
|
||||
|
||||
bool isFolderHighlighted(MailboxNode mailboxNode) =>
|
||||
mailboxNode.item.isFavorite && isSearchByStarredOnly;
|
||||
|
||||
Widget buildListMailbox(BuildContext context) {
|
||||
final isDesktop = controller.responsiveUtils.isDesktop(context);
|
||||
|
||||
|
||||
@@ -21,6 +21,13 @@ mixin MailboxWidgetMixin {
|
||||
bool spamReportEnabled,
|
||||
bool deletedMessageVaultSupported
|
||||
) {
|
||||
if (mailbox.isFavorite) {
|
||||
return [
|
||||
if (PlatformInfo.isWeb)
|
||||
MailboxActions.openInNewTab,
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
if (PlatformInfo.isWeb)
|
||||
MailboxActions.openInNewTab,
|
||||
|
||||
@@ -25,6 +25,7 @@ class LabelMailboxItemWidget extends StatefulWidget {
|
||||
final bool isItemHovered;
|
||||
final bool isSelected;
|
||||
final bool isSelectedFolderInModal;
|
||||
final bool isHighlighted;
|
||||
final TextStyle? textStyle;
|
||||
final OnClickOpenMenuMailboxNodeAction? onMenuActionClick;
|
||||
final OnEmptyMailboxActionCallback? onEmptyMailboxActionCallback;
|
||||
@@ -38,6 +39,7 @@ class LabelMailboxItemWidget extends StatefulWidget {
|
||||
this.isItemHovered = false,
|
||||
this.isSelected = false,
|
||||
this.isSelectedFolderInModal = false,
|
||||
this.isHighlighted = false,
|
||||
this.textStyle,
|
||||
this.onMenuActionClick,
|
||||
this.onEmptyMailboxActionCallback,
|
||||
@@ -218,7 +220,7 @@ class _LabelMailboxItemWidgetState extends State<LabelMailboxItemWidget> {
|
||||
bool _showMoreButton(BuildContext context) => PlatformInfo.isWeb;
|
||||
|
||||
TextStyle get _displayNameTextStyle {
|
||||
if (widget.isSelected) {
|
||||
if (widget.isSelected || widget.isHighlighted) {
|
||||
return ThemeUtils.textStyleInter700(
|
||||
color: _responsiveUtils.isDesktop(context) ? null : AppColor.iconFolder,
|
||||
fontSize: 14,
|
||||
|
||||
@@ -30,6 +30,7 @@ class MailboxItemWidget extends StatefulWidget {
|
||||
final Color? iconColor;
|
||||
final double? itemHeight;
|
||||
final String? iconSelected;
|
||||
final bool isHighlighted;
|
||||
|
||||
final OnClickExpandMailboxNodeAction? onExpandFolderActionClick;
|
||||
final OnClickOpenMailboxNodeAction? onOpenMailboxFolderClick;
|
||||
@@ -43,6 +44,7 @@ class MailboxItemWidget extends StatefulWidget {
|
||||
super.key,
|
||||
required this.mailboxNode,
|
||||
this.mailboxDisplayed = MailboxDisplayed.mailbox,
|
||||
this.isHighlighted = false,
|
||||
this.mailboxNodeSelected,
|
||||
this.mailboxActions,
|
||||
this.mailboxIdAlreadySelected,
|
||||
@@ -116,6 +118,7 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
|
||||
mailboxNode: widget.mailboxNode,
|
||||
isItemHovered: _isItemHovered,
|
||||
isSelected: _isSelected,
|
||||
isHighlighted: widget.isHighlighted,
|
||||
textStyle: widget.textStyle,
|
||||
onMenuActionClick: widget.onMenuActionClick,
|
||||
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback,
|
||||
@@ -174,6 +177,7 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
|
||||
mailboxNode: widget.mailboxNode,
|
||||
isItemHovered: _isItemHovered,
|
||||
isSelected: _isSelected,
|
||||
isHighlighted: widget.isHighlighted,
|
||||
textStyle: widget.textStyle,
|
||||
onMenuActionClick: widget.onMenuActionClick,
|
||||
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback,
|
||||
@@ -224,6 +228,7 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
|
||||
mailboxNode: widget.mailboxNode,
|
||||
isItemHovered: _isItemHovered,
|
||||
isSelected: _isSelected,
|
||||
isHighlighted: widget.isHighlighted,
|
||||
textStyle: widget.textStyle,
|
||||
onMenuActionClick: widget.onMenuActionClick,
|
||||
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback,
|
||||
@@ -273,6 +278,7 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
|
||||
mailboxNode: widget.mailboxNode,
|
||||
showTrailing: false,
|
||||
isSelected: _isSelected,
|
||||
isHighlighted: widget.isHighlighted,
|
||||
isItemHovered: _isItemHovered,
|
||||
textStyle: widget.textStyle,
|
||||
isSelectedFolderInModal: isSelectedFolderInModal,
|
||||
@@ -306,7 +312,9 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
|
||||
|
||||
Color get backgroundColorItem {
|
||||
if (widget.mailboxDisplayed == MailboxDisplayed.mailbox) {
|
||||
return _isSelected ? AppColor.blue100 : Colors.transparent;
|
||||
return _isSelected || widget.isHighlighted
|
||||
? AppColor.blue100
|
||||
: Colors.transparent;
|
||||
}
|
||||
return Colors.white;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user