TF-4066 Display Unread, Starred in list quick search button in dashboard view

This commit is contained in:
dab246
2025-09-26 18:12:27 +07:00
committed by Dat H. Pham
parent efc2d80efc
commit d05904229b
9 changed files with 92 additions and 10 deletions
@@ -0,0 +1,38 @@
import 'package:dartz/dartz.dart';
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
extension SelectSearchFilterActionExtension on MailboxDashBoardController {
void selectStarredSearchFilter() {
final listHasKeywordFiltered = searchController.listHasKeywordFiltered;
if (!listHasKeywordFiltered.contains(KeyWordIdentifier.emailFlagged.value)) {
listHasKeywordFiltered.add(KeyWordIdentifier.emailFlagged.value);
}
searchController.updateFilterEmail(
hasKeywordOption: Some(listHasKeywordFiltered),
);
dispatchAction(StartSearchEmailAction());
}
void selectUnreadSearchFilter() {
searchController.updateFilterEmail(unreadOption: const Some(true));
dispatchAction(StartSearchEmailAction());
}
void deleteStarredSearchFilter() {
final listHasKeywordFiltered = searchController.listHasKeywordFiltered;
if (listHasKeywordFiltered.contains(KeyWordIdentifier.emailFlagged.value)) {
listHasKeywordFiltered.remove(KeyWordIdentifier.emailFlagged.value);
}
searchController.updateFilterEmail(
hasKeywordOption: Some(listHasKeywordFiltered),
);
dispatchAction(StartSearchEmailAction());
}
void deleteUnreadSearchFilter() {
searchController.updateFilterEmail(unreadOption: const None());
dispatchAction(StartSearchEmailAction());
}
}