TF-234 Display selection multiple mailbox

This commit is contained in:
dab246
2022-02-24 13:17:51 +07:00
committed by Dat H. Pham
parent ba453f71b2
commit cdeab01a58
17 changed files with 697 additions and 223 deletions
@@ -1,5 +1,7 @@
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/mailbox/expand_mode.dart';
import 'package:model/mailbox/select_mode.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
extension ListMailboxNodeExtensions on List<MailboxNode> {
@@ -15,4 +17,29 @@ extension ListMailboxNodeExtensions on List<MailboxNode> {
}
}).toList();
}
List<MailboxNode>? toggleSelectMailboxNode(MailboxNode selectedMailboxMode) {
return map((MailboxNode child) {
if (child.item.id == selectedMailboxMode.item.id) {
return child.toggleSelectMailboxNode();
} else {
if (child.hasChildren()) {
return child.copyWith(mailboxNodes: child.toggleSelectNode(selectedMailboxMode));
}
return child;
}
}).toList();
}
List<MailboxNode>? toSelectMailboxNode({required SelectMode selectMode, ExpandMode? newExpandMode}) {
return map((MailboxNode child) {
if (child.hasChildren()) {
return child.copyWith(
mailboxNodes: child.toSelectedNode(selectMode: selectMode, newExpandMode: newExpandMode),
newSelectMode: selectMode,
newExpandMode: newExpandMode);
}
return child.toSelectedMailboxNode(selectMode: selectMode, newExpandMode: newExpandMode);
}).toList();
}
}