TF-3002 [WEB] Remove BuildContext in dashboard action
This commit is contained in:
@@ -111,7 +111,6 @@ mixin EmailActionController {
|
||||
}
|
||||
|
||||
void moveToMailbox(
|
||||
BuildContext context,
|
||||
PresentationEmail email,
|
||||
{PresentationMailbox? mailboxContain}
|
||||
) async {
|
||||
@@ -130,12 +129,10 @@ mixin EmailActionController {
|
||||
: await push(AppRoutes.destinationPicker, arguments: arguments);
|
||||
|
||||
if (destinationMailbox != null &&
|
||||
context.mounted &&
|
||||
destinationMailbox is PresentationMailbox &&
|
||||
mailboxDashBoardController.sessionCurrent != null
|
||||
) {
|
||||
_dispatchMoveToAction(
|
||||
context,
|
||||
accountId,
|
||||
mailboxDashBoardController.sessionCurrent!,
|
||||
email,
|
||||
@@ -146,7 +143,6 @@ mixin EmailActionController {
|
||||
}
|
||||
|
||||
void _dispatchMoveToAction(
|
||||
BuildContext context,
|
||||
AccountId accountId,
|
||||
Session session,
|
||||
PresentationEmail emailSelected,
|
||||
@@ -245,12 +241,10 @@ mixin EmailActionController {
|
||||
}
|
||||
|
||||
void moveSelectedMultipleEmailToMailbox(
|
||||
BuildContext context,
|
||||
List<PresentationEmail> listEmails,
|
||||
PresentationMailbox mailboxCurrent
|
||||
) {
|
||||
mailboxDashBoardController.moveSelectedMultipleEmailToMailbox(
|
||||
context,
|
||||
listEmails,
|
||||
mailboxCurrent);
|
||||
}
|
||||
@@ -284,7 +278,7 @@ mixin EmailActionController {
|
||||
onCancelSelectionEmail: onCancelSelectionEmail);
|
||||
}
|
||||
|
||||
void openEmailInNewTabAction(BuildContext context, PresentationEmail email) {
|
||||
void openEmailInNewTabAction(PresentationEmail email) {
|
||||
AppUtils.launchLink(email.routeWebAsString);
|
||||
}
|
||||
|
||||
|
||||
@@ -287,10 +287,10 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
cancelSelectEmail();
|
||||
mailboxDashBoardController.clearDashBoardAction();
|
||||
} else if (action is FilterMessageAction) {
|
||||
filterMessagesAction(action.context, action.option);
|
||||
filterMessagesAction(action.option);
|
||||
mailboxDashBoardController.clearDashBoardAction();
|
||||
} else if (action is HandleEmailActionTypeAction) {
|
||||
pressEmailSelectionAction(action.context, action.emailAction, action.listEmailSelected);
|
||||
pressEmailSelectionAction(action.emailAction, action.listEmailSelected);
|
||||
mailboxDashBoardController.clearDashBoardAction();
|
||||
} else if (action is OpenEmailDetailedFromSuggestionQuickSearchAction) {
|
||||
final mailboxContain = action.presentationEmail.findMailboxContain(mailboxDashBoardController.mapMailboxById);
|
||||
@@ -299,7 +299,6 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
EmailActionType.preview,
|
||||
newEmail,
|
||||
mailboxContain: mailboxContain,
|
||||
context: action.context,
|
||||
);
|
||||
mailboxDashBoardController.clearDashBoardAction();
|
||||
} else if (action is StartSearchEmailAction) {
|
||||
@@ -307,8 +306,8 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
_replaceBrowserHistory();
|
||||
_searchEmail();
|
||||
mailboxDashBoardController.clearDashBoardAction();
|
||||
} else if (action is EmptyTrashAction) {
|
||||
deleteSelectionEmailsPermanently(action.context, DeleteActionType.all);
|
||||
} else if (action is EmptyTrashAction && currentContext != null) {
|
||||
deleteSelectionEmailsPermanently(currentContext!, DeleteActionType.all);
|
||||
mailboxDashBoardController.clearDashBoardAction();
|
||||
} else if (action is OpenEmailInsideMailboxFromLocationBar) {
|
||||
_getEmailByIdFromLocationBar(
|
||||
@@ -720,7 +719,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
}
|
||||
}
|
||||
|
||||
void selectEmail(BuildContext context, PresentationEmail presentationEmailSelected) {
|
||||
void selectEmail(PresentationEmail presentationEmailSelected) {
|
||||
final emailsInCurrentMailbox = mailboxDashBoardController.emailsInCurrentMailbox;
|
||||
|
||||
if (_rangeSelectionMode && latestEmailSelectedOrUnselected.value != null && latestEmailSelectedOrUnselected.value?.id != presentationEmailSelected.id) {
|
||||
@@ -780,7 +779,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
popBack();
|
||||
}
|
||||
|
||||
void filterMessagesAction(BuildContext context, FilterMessageOption filterOption) {
|
||||
void filterMessagesAction(FilterMessageOption filterOption) {
|
||||
popBack();
|
||||
|
||||
final newFilterOption = mailboxDashBoardController.filterMessageOption.value == filterOption
|
||||
@@ -789,11 +788,12 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
|
||||
mailboxDashBoardController.filterMessageOption.value = newFilterOption;
|
||||
|
||||
appToast.showToastMessage(
|
||||
context,
|
||||
newFilterOption.getMessageToast(context),
|
||||
leadingSVGIcon: newFilterOption.getIconToast(imagePaths),
|
||||
);
|
||||
if (currentContext != null && currentOverlayContext != null) {
|
||||
appToast.showToastMessage(
|
||||
currentOverlayContext!,
|
||||
newFilterOption.getMessageToast(currentContext!),
|
||||
leadingSVGIcon: newFilterOption.getIconToast(imagePaths));
|
||||
}
|
||||
|
||||
if (searchController.isSearchEmailRunning) {
|
||||
_searchEmail();
|
||||
@@ -947,7 +947,10 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
}
|
||||
}
|
||||
|
||||
void pressEmailSelectionAction(BuildContext context, EmailActionType actionType, List<PresentationEmail> selectionEmail) {
|
||||
void pressEmailSelectionAction(
|
||||
EmailActionType actionType,
|
||||
List<PresentationEmail> selectionEmail
|
||||
) {
|
||||
switch(actionType) {
|
||||
case EmailActionType.markAsRead:
|
||||
cancelSelectEmail();
|
||||
@@ -971,7 +974,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
||||
: selectedMailbox;
|
||||
if (mailboxContainCurrent != null) {
|
||||
moveSelectedMultipleEmailToMailbox(context, selectionEmail, mailboxContainCurrent);
|
||||
moveSelectedMultipleEmailToMailbox(selectionEmail, mailboxContainCurrent);
|
||||
}
|
||||
break;
|
||||
case EmailActionType.moveToTrash:
|
||||
@@ -987,9 +990,9 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
final mailboxContainCurrent = searchController.isSearchEmailRunning
|
||||
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
|
||||
: selectedMailbox;
|
||||
if (mailboxContainCurrent != null) {
|
||||
if (mailboxContainCurrent != null && currentContext != null) {
|
||||
deleteSelectionEmailsPermanently(
|
||||
context,
|
||||
currentContext!,
|
||||
DeleteActionType.multiple,
|
||||
listEmails: selectionEmail,
|
||||
mailboxCurrent: mailboxContainCurrent,
|
||||
@@ -1019,7 +1022,6 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
PresentationEmail selectedEmail,
|
||||
{
|
||||
PresentationMailbox? mailboxContain,
|
||||
BuildContext? context,
|
||||
}
|
||||
) {
|
||||
switch(actionType) {
|
||||
@@ -1031,7 +1033,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
}
|
||||
break;
|
||||
case EmailActionType.selection:
|
||||
selectEmail(context!, selectedEmail);
|
||||
selectEmail(selectedEmail);
|
||||
break;
|
||||
case EmailActionType.markAsRead:
|
||||
markAsEmailRead(selectedEmail, ReadActions.markAsRead, MarkReadAction.tap);
|
||||
@@ -1046,13 +1048,15 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
markAsStarEmail(selectedEmail, MarkStarAction.unMarkStar);
|
||||
break;
|
||||
case EmailActionType.moveToMailbox:
|
||||
moveToMailbox(context!, selectedEmail, mailboxContain: mailboxContain);
|
||||
moveToMailbox(selectedEmail, mailboxContain: mailboxContain);
|
||||
break;
|
||||
case EmailActionType.moveToTrash:
|
||||
moveToTrash(selectedEmail, mailboxContain: mailboxContain);
|
||||
break;
|
||||
case EmailActionType.deletePermanently:
|
||||
deleteEmailPermanently(context!, selectedEmail);
|
||||
if (currentContext != null) {
|
||||
deleteEmailPermanently(currentContext!, selectedEmail);
|
||||
}
|
||||
break;
|
||||
case EmailActionType.moveToSpam:
|
||||
popBack();
|
||||
@@ -1063,7 +1067,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
unSpam(selectedEmail);
|
||||
break;
|
||||
case EmailActionType.openInNewTab:
|
||||
openEmailInNewTabAction(context!, selectedEmail);
|
||||
openEmailInNewTabAction(selectedEmail);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -74,13 +74,7 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
filterOption: controller.mailboxDashBoardController.filterMessageOption.value,
|
||||
openMailboxAction: controller.openMailboxLeftMenu,
|
||||
cancelEditThreadAction: controller.cancelSelectEmail,
|
||||
emailSelectionAction: (actionType, selectionEmail) {
|
||||
return controller.pressEmailSelectionAction(
|
||||
context,
|
||||
actionType,
|
||||
selectionEmail
|
||||
);
|
||||
},
|
||||
emailSelectionAction: controller.pressEmailSelectionAction,
|
||||
onContextMenuFilterEmailAction: controller.responsiveUtils.isScreenWithShortestSide(context)
|
||||
? (filterOption) => controller.openContextMenuAction(
|
||||
context,
|
||||
@@ -94,7 +88,7 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
popupMenuFilterEmailActionTile(
|
||||
context,
|
||||
filterOption,
|
||||
(option) => controller.filterMessagesAction(context, option)
|
||||
controller.filterMessagesAction
|
||||
)
|
||||
)
|
||||
: null
|
||||
@@ -245,12 +239,7 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
controller.responsiveUtils,
|
||||
listEmailSelected,
|
||||
controller.mailboxDashBoardController.selectedMailbox.value,
|
||||
onPressEmailSelectionActionClick: (actionType, selectionEmail) =>
|
||||
controller.pressEmailSelectionAction(
|
||||
context,
|
||||
actionType,
|
||||
selectionEmail
|
||||
)
|
||||
onPressEmailSelectionActionClick: controller.pressEmailSelectionAction
|
||||
);
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
@@ -341,7 +330,7 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
width: 20,
|
||||
height: 20,
|
||||
fit: BoxFit.fill))
|
||||
..onActionClick((option) => controller.filterMessagesAction(context, option)))
|
||||
..onActionClick(controller.filterMessagesAction))
|
||||
.build()).toList();
|
||||
}
|
||||
|
||||
@@ -598,22 +587,20 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
searchQuery: controller.searchQuery,
|
||||
mailboxContain: presentationEmail.mailboxContain,
|
||||
isSearchEmailRunning: controller.searchController.isSearchEmailRunning,
|
||||
emailActionClick: (action, email) => _handleEmailActionClicked(context, email, action),
|
||||
emailActionClick: _handleEmailActionClicked,
|
||||
onMoreActionClick: (email, position) => _handleEmailContextMenuAction(context, email, position),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void _handleEmailActionClicked(
|
||||
BuildContext context,
|
||||
PresentationEmail presentationEmail,
|
||||
EmailActionType actionType
|
||||
EmailActionType actionType,
|
||||
PresentationEmail presentationEmail
|
||||
) {
|
||||
controller.handleEmailActionType(
|
||||
actionType,
|
||||
presentationEmail,
|
||||
mailboxContain: presentationEmail.mailboxContain,
|
||||
context: context
|
||||
);
|
||||
}
|
||||
|
||||
@@ -736,7 +723,6 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
mailboxContain?.isSpam == true ? EmailActionType.unSpam : EmailActionType.moveToSpam,
|
||||
email,
|
||||
mailboxContain: mailboxContain,
|
||||
context: context,
|
||||
))
|
||||
).build();
|
||||
}
|
||||
@@ -760,7 +746,7 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
: EdgeInsets.zero)
|
||||
..onActionClick((email) {
|
||||
popBack();
|
||||
controller.openEmailInNewTabAction(context, email);
|
||||
controller.openEmailInNewTabAction(email);
|
||||
})
|
||||
).build();
|
||||
}
|
||||
@@ -823,7 +809,6 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
mailboxContain?.isSpam == true ? EmailActionType.unSpam : EmailActionType.moveToSpam,
|
||||
email,
|
||||
mailboxContain: mailboxContain,
|
||||
context: context
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -847,7 +832,7 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
),
|
||||
onCallbackAction: () {
|
||||
popBack();
|
||||
controller.openEmailInNewTabAction(context, email);
|
||||
controller.openEmailInNewTabAction(email);
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user