TF-234 Display bottom bar actions for selection mailbox

This commit is contained in:
dab246
2022-02-24 15:08:14 +07:00
committed by Dat H. Pham
parent cdeab01a58
commit a19f3841d3
10 changed files with 185 additions and 31 deletions
@@ -22,6 +22,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/usecases/create_new_mailbo
import 'package:tmail_ui_user/features/mailbox/domain/usecases/get_all_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/refresh_all_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/search_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
@@ -193,10 +194,7 @@ class MailboxController extends BaseController {
final newMailboxNodeList = folderMailboxNodeList.updateNode(
mailboxNode.item.id,
mailboxNode.copyWith(newExpandMode: newExpandMode));
if (newMailboxNodeList != null) {
folderMailboxNodeList.value = newMailboxNodeList;
}
folderMailboxNodeList.value = newMailboxNodeList;
}
void _setUpMapMailboxIdDefault(List<PresentationMailbox> defaultMailboxList, List<PresentationMailbox> folderMailboxList) {
@@ -377,6 +375,8 @@ class MailboxController extends BaseController {
_cancelSelectMailbox();
}
bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE;
void selectMailbox(BuildContext context, PresentationMailbox mailboxSelected) {
if (isSearchActive()) {
listMailboxSearched.value = listMailboxSearched
@@ -395,9 +395,7 @@ class MailboxController extends BaseController {
void selectMailboxNode(BuildContext context, MailboxNode mailboxNodeSelected) {
final newMailboxNodeList = folderMailboxNodeList.toggleSelectMailboxNode(mailboxNodeSelected);
if (newMailboxNodeList != null) {
folderMailboxNodeList.value = newMailboxNodeList;
}
folderMailboxNodeList.value = newMailboxNodeList;
}
void _cancelSelectMailbox() {
@@ -413,13 +411,47 @@ class MailboxController extends BaseController {
final newMailboxNodeList = folderMailboxNodeList.toSelectMailboxNode(
selectMode: SelectMode.INACTIVE,
newExpandMode: ExpandMode.COLLAPSE);
if (newMailboxNodeList != null) {
folderMailboxNodeList.value = newMailboxNodeList;
}
folderMailboxNodeList.value = newMailboxNodeList;
}
currentSelectMode.value = SelectMode.INACTIVE;
}
List<PresentationMailbox> get listMailboxSelected {
if (isSearchActive()) {
return listMailboxSearched
.where((mailbox) => mailbox.selectMode == SelectMode.ACTIVE)
.toList();
} else {
final defaultMailboxSelected = defaultMailboxList
.where((mailbox) => mailbox.selectMode == SelectMode.ACTIVE)
.toList();
final newFolderMailboxTree = MailboxTree(MailboxNode(
MailboxNode.rootItem(),
childrenItems: folderMailboxNodeList));
final folderMailboxList = allMailboxes.where((mailbox) => !mailbox.hasRole()).toList();
final folderMailboxSelected = folderMailboxList
.where((mailbox) {
final node = newFolderMailboxTree.findNode(mailbox.id);
return node != null && node.selectMode == SelectMode.ACTIVE;
})
.toList();
return defaultMailboxSelected + folderMailboxSelected;
}
}
void pressMailboxSelectionAction(BuildContext context, MailboxActions actions,
List<PresentationMailbox> selectionMailbox) {
switch(actions) {
case MailboxActions.delete:
break;
default:
break;
}
}
void closeMailboxScreen(BuildContext context) {
mailboxDashBoardController.closeDrawer();
}