TF-1427 Abstraction mailbox method action

This commit is contained in:
dab246
2023-02-09 15:06:16 +07:00
committed by Dat Vu
parent 4f8da9cb31
commit e2c0cb52a6
15 changed files with 465 additions and 332 deletions
@@ -8,15 +8,9 @@ import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_ma
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_displayed.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
typedef OnExpandFolderActionClick = void Function(MailboxNode);
typedef OnOpenMailboxFolderClick = void Function(MailboxNode);
typedef OnSelectMailboxFolderClick = void Function(MailboxNode);
typedef OnMenuActionClick = void Function(RelativeRect, MailboxNode);
typedef OnDragItemAccepted = void Function(List<PresentationEmail>, PresentationMailbox);
typedef OnLongPressMailboxFolderClick = void Function(MailboxNode);
class MailBoxFolderTileBuilder {
final _responsiveUtils = Get.find<ResponsiveUtils>();
@@ -31,13 +25,13 @@ class MailBoxFolderTileBuilder {
final MailboxActions? mailboxActions;
final MailboxId? mailboxIdAlreadySelected;
OnExpandFolderActionClick? _onExpandFolderActionClick;
OnOpenMailboxFolderClick? _onOpenMailboxFolderClick;
OnSelectMailboxFolderClick? _onSelectMailboxFolderClick;
OnMenuActionClick? _onMenuActionClick;
OnDragItemAccepted? _onDragItemAccepted;
OnLongPressMailboxFolderClick? _onLongPressMailboxFolderClick;
OnClickExpandMailboxNodeAction? _onExpandFolderActionClick;
OnClickOpenMailboxNodeAction? _onOpenMailboxFolderClick;
OnSelectMailboxNodeAction? _onSelectMailboxFolderClick;
OnClickOpenMenuMailboxNodeAction? _onMenuActionClick;
OnDragEmailToMailboxAccepted? _onDragItemAccepted;
OnLongPressMailboxNodeAction? _onLongPressSpamReport;
bool isHoverItem = false;
MailBoxFolderTileBuilder(
@@ -54,28 +48,28 @@ class MailBoxFolderTileBuilder {
}
);
void addOnExpandFolderActionClick(OnExpandFolderActionClick onExpandFolderActionClick) {
void addOnClickExpandMailboxNodeAction(OnClickExpandMailboxNodeAction onExpandFolderActionClick) {
_onExpandFolderActionClick = onExpandFolderActionClick;
}
void addOnOpenMailboxFolderClick(OnOpenMailboxFolderClick onOpenMailboxFolderClick) {
void addOnClickOpenMailboxNodeAction(OnClickOpenMailboxNodeAction onOpenMailboxFolderClick) {
_onOpenMailboxFolderClick = onOpenMailboxFolderClick;
}
void addOnSelectMailboxFolderClick(OnSelectMailboxFolderClick onSelectMailboxFolderClick) {
void addOnSelectMailboxNodeAction(OnSelectMailboxNodeAction onSelectMailboxFolderClick) {
_onSelectMailboxFolderClick = onSelectMailboxFolderClick;
}
void addOnMenuActionClick(OnMenuActionClick onMenuActionClick) {
void addOnClickOpenMenuMailboxNodeAction(OnClickOpenMenuMailboxNodeAction onMenuActionClick) {
_onMenuActionClick = onMenuActionClick;
}
void addOnDragItemAccepted(OnDragItemAccepted onDragItemAccepted) {
void addOnDragEmailToMailboxAccepted(OnDragEmailToMailboxAccepted onDragItemAccepted) {
_onDragItemAccepted = onDragItemAccepted;
}
void addOnLongPressMailboxFolderClick(OnLongPressMailboxFolderClick onLongPressMailboxFolderClick) {
_onLongPressMailboxFolderClick = onLongPressMailboxFolderClick;
void addOnLongPressMailboxNodeAction(OnLongPressMailboxNodeAction onLongPressSpamReport) {
_onLongPressSpamReport = onLongPressSpamReport;
}
Widget build() => DragTarget<List<PresentationEmail>>(
@@ -6,11 +6,7 @@ import 'package:model/model.dart';
import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_displayed.dart';
typedef OnOpenMailboxActionClick = void Function(PresentationMailbox);
typedef OnSelectMailboxActionClick = void Function(PresentationMailbox);
typedef OnOpenMenuActionClick = void Function(RelativeRect, PresentationMailbox);
typedef OnDragItemAccepted = void Function(List<PresentationEmail>, PresentationMailbox);
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart';
class MailboxSearchTileBuilder {
@@ -27,10 +23,10 @@ class MailboxSearchTileBuilder {
bool isHoverItem = false;
OnOpenMailboxActionClick? _onOpenMailboxActionClick;
OnSelectMailboxActionClick? _onSelectMailboxActionClick;
OnOpenMenuActionClick? _onMenuActionClick;
OnDragItemAccepted? _onDragItemAccepted;
OnClickOpenMailboxAction? _onOpenMailboxActionClick;
OnSelectMailboxAction? _onSelectMailboxActionClick;
OnClickOpenMenuMailboxAction? _onMenuActionClick;
OnDragEmailToMailboxAccepted? _onDragItemAccepted;
MailboxSearchTileBuilder(
this._context,
@@ -47,19 +43,19 @@ class MailboxSearchTileBuilder {
}
);
void addOnOpenMailboxAction(OnOpenMailboxActionClick onOpenMailboxActionClick) {
void addOnOpenMailboxAction(OnClickOpenMailboxAction onOpenMailboxActionClick) {
_onOpenMailboxActionClick = onOpenMailboxActionClick;
}
void addOnSelectMailboxActionClick(OnSelectMailboxActionClick onSelectMailboxActionClick) {
void addOnSelectMailboxAction(OnSelectMailboxAction onSelectMailboxActionClick) {
_onSelectMailboxActionClick = onSelectMailboxActionClick;
}
void addOnMenuActionClick(OnOpenMenuActionClick onOpenMenuActionClick) {
void addOnMenuActionClick(OnClickOpenMenuMailboxAction onOpenMenuActionClick) {
_onMenuActionClick = onOpenMenuActionClick;
}
void addOnDragItemAccepted(OnDragItemAccepted onDragItemAccepted) {
void addOnDragEmailToMailboxAccepted(OnDragEmailToMailboxAccepted onDragItemAccepted) {
_onDragItemAccepted = onDragItemAccepted;
}