TF-3385 Create abstract group for update mailbox actions
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/base/action/update_mailbox_properties_action/update_mailbox_properties_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree.dart';
|
||||
|
||||
class UpdateMailboxNameAction extends UpdateMailboxPropertiesAction {
|
||||
const UpdateMailboxNameAction({
|
||||
required super.mailboxTrees,
|
||||
required super.mailboxId,
|
||||
required this.mailboxName,
|
||||
});
|
||||
|
||||
final MailboxName mailboxName;
|
||||
|
||||
@override
|
||||
bool updateProperty(MailboxTree mailboxTree) {
|
||||
return mailboxTree.updateMailboxNameById(mailboxId, mailboxName);
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
import 'package:get/get_rx/get_rx.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree.dart';
|
||||
|
||||
abstract class UpdateMailboxPropertiesAction {
|
||||
const UpdateMailboxPropertiesAction({
|
||||
required this.mailboxTrees,
|
||||
required this.mailboxId,
|
||||
});
|
||||
|
||||
final List<Rx<MailboxTree>> mailboxTrees;
|
||||
final MailboxId mailboxId;
|
||||
|
||||
bool updateProperty(MailboxTree mailboxTree);
|
||||
|
||||
void execute() {
|
||||
for (var mailboxTree in mailboxTrees) {
|
||||
if (updateProperty(mailboxTree.value)) {
|
||||
mailboxTree.refresh();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
import 'package:tmail_ui_user/features/base/action/update_mailbox_properties_action/update_mailbox_properties_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree.dart';
|
||||
|
||||
class UpdateMailboxTotalEmailsCountAction extends UpdateMailboxPropertiesAction {
|
||||
const UpdateMailboxTotalEmailsCountAction({
|
||||
required super.mailboxTrees,
|
||||
required super.mailboxId,
|
||||
required this.totalEmailsCountChanged,
|
||||
});
|
||||
|
||||
final int totalEmailsCountChanged;
|
||||
|
||||
@override
|
||||
bool updateProperty(MailboxTree mailboxTree) {
|
||||
return mailboxTree.updateMailboxTotalEmailsCountById(
|
||||
mailboxId,
|
||||
totalEmailsCountChanged,
|
||||
);
|
||||
}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import 'package:tmail_ui_user/features/base/action/update_mailbox_properties_action/update_mailbox_properties_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree.dart';
|
||||
|
||||
class UpdateMailboxUnreadCountAction extends UpdateMailboxPropertiesAction {
|
||||
const UpdateMailboxUnreadCountAction({
|
||||
required super.mailboxTrees,
|
||||
required super.mailboxId,
|
||||
required this.unreadChanges,
|
||||
});
|
||||
|
||||
final int unreadChanges;
|
||||
|
||||
@override
|
||||
bool updateProperty(MailboxTree mailboxTree) {
|
||||
return mailboxTree.updateMailboxUnreadCountById(mailboxId, unreadChanges);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user