TF-2084 Add RuleFilterActionArguments
(cherry picked from commit 04dd5c95d47ded39ceecad2de7ee4fbe1795cb9b)
This commit is contained in:
+95
@@ -0,0 +1,95 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/email_rule_filter_action.dart';
|
||||
|
||||
abstract class RuleFilterActionArguments with EquatableMixin {
|
||||
final EmailRuleFilterAction? action;
|
||||
|
||||
RuleFilterActionArguments({
|
||||
this.action,
|
||||
});
|
||||
|
||||
factory RuleFilterActionArguments.newAction(EmailRuleFilterAction? action) {
|
||||
switch (action) {
|
||||
case EmailRuleFilterAction.maskAsSeen:
|
||||
return MarkAsSeenActionArguments();
|
||||
case EmailRuleFilterAction.markAsSpam:
|
||||
return MarAsSpamActionArguments();
|
||||
case EmailRuleFilterAction.forwardTo:
|
||||
return ForwardActionArguments();
|
||||
case EmailRuleFilterAction.moveMessage:
|
||||
return MoveMessageActionArguments();
|
||||
case EmailRuleFilterAction.rejectIt:
|
||||
return RejectItActionArguments();
|
||||
case EmailRuleFilterAction.startIt:
|
||||
return StarItActionArguments();
|
||||
default:
|
||||
return EmptyRuleFilterActionArguments();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
action,
|
||||
];
|
||||
}
|
||||
|
||||
class ForwardActionArguments extends RuleFilterActionArguments {
|
||||
final String? forwardEmail;
|
||||
|
||||
ForwardActionArguments({
|
||||
this.forwardEmail,
|
||||
}) : super(
|
||||
action: EmailRuleFilterAction.forwardTo,
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
forwardEmail,
|
||||
];
|
||||
}
|
||||
|
||||
class MarkAsSeenActionArguments extends RuleFilterActionArguments {
|
||||
MarkAsSeenActionArguments() : super(
|
||||
action: EmailRuleFilterAction.maskAsSeen,
|
||||
);
|
||||
}
|
||||
|
||||
class MarAsSpamActionArguments extends RuleFilterActionArguments {
|
||||
MarAsSpamActionArguments() : super(
|
||||
action: EmailRuleFilterAction.markAsSpam,
|
||||
);
|
||||
}
|
||||
|
||||
class MoveMessageActionArguments extends RuleFilterActionArguments {
|
||||
final PresentationMailbox? mailbox;
|
||||
|
||||
MoveMessageActionArguments({
|
||||
this.mailbox,
|
||||
}) : super(
|
||||
action: EmailRuleFilterAction.moveMessage,
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
mailbox,
|
||||
];
|
||||
}
|
||||
|
||||
class RejectItActionArguments extends RuleFilterActionArguments {
|
||||
RejectItActionArguments() : super(
|
||||
action: EmailRuleFilterAction.rejectIt,
|
||||
);
|
||||
}
|
||||
|
||||
class StarItActionArguments extends RuleFilterActionArguments {
|
||||
StarItActionArguments() : super(
|
||||
action: EmailRuleFilterAction.startIt,
|
||||
);
|
||||
}
|
||||
|
||||
class EmptyRuleFilterActionArguments extends RuleFilterActionArguments {
|
||||
EmptyRuleFilterActionArguments() : super(
|
||||
action: null,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user