Files
workavia-mail-front/lib/features/base/mixin/mailbox_action_handler_mixin.dart
T
HuyNguyen 0b0db87260 TF-1604: Add requiredCapabilities support TeamMailbox for mailbox
(cherry picked from commit ac7a8bff08ddc13e94b9ae97923c477c7d810ba0)
2023-03-24 19:40:48 +07:00

39 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
mixin MailboxActionHandlerMixin {
void openMailboxInNewTabAction(PresentationMailbox mailbox) {
AppUtils.launchLink(mailbox.mailboxRouteWeb.toString());
}
void markAsReadMailboxAction(
BuildContext context,
PresentationMailbox presentationMailbox,
MailboxDashBoardController dashboardController,
{
Function(BuildContext)? onCallbackAction
}
) {
final session = dashboardController.sessionCurrent;
final accountId = dashboardController.accountId.value;
final mailboxId = presentationMailbox.id;
final mailboxName = presentationMailbox.name;
final countEmailsUnread = presentationMailbox.unreadEmails?.value.value ?? 0;
if (session != null && accountId != null && mailboxName != null) {
dashboardController.markAsReadMailbox(
session,
accountId,
mailboxId,
mailboxName,
countEmailsUnread.toInt()
);
onCallbackAction?.call(context);
}
}
}