TF-1427 Abstraction mailbox method action
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||
|
||||
mixin MailboxActionHandlerMixin {
|
||||
|
||||
void openMailboxInNewTabAction(PresentationMailbox mailbox) {
|
||||
final mailboxRouteWeb = RouteUtils.generateRouteBrowser(
|
||||
AppRoutes.dashboard,
|
||||
NavigationRouter(mailboxId: mailbox.id)
|
||||
);
|
||||
log('MailboxActionHandlerMixin::openMailboxInNewTabAction(): mailboxRouteWeb: $mailboxRouteWeb');
|
||||
AppUtils.launchLink(mailboxRouteWeb.toString());
|
||||
}
|
||||
|
||||
void markAsReadMailboxAction(
|
||||
BuildContext context,
|
||||
PresentationMailbox presentationMailbox,
|
||||
MailboxDashBoardController dashboardController,
|
||||
{
|
||||
Function(BuildContext)? onCallbackAction
|
||||
}
|
||||
) {
|
||||
final accountId = dashboardController.accountId.value;
|
||||
final mailboxId = presentationMailbox.id;
|
||||
final mailboxName = presentationMailbox.name;
|
||||
final countEmailsUnread = presentationMailbox.unreadEmails?.value.value ?? 0;
|
||||
if (accountId != null && mailboxName != null) {
|
||||
dashboardController.markAsReadMailbox(
|
||||
accountId,
|
||||
mailboxId,
|
||||
mailboxName,
|
||||
countEmailsUnread.toInt()
|
||||
);
|
||||
|
||||
onCallbackAction?.call(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user