Files
workavia-mail-front/lib/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart
T
dab246 bb98f02918 TF-1831 Handle system back button in search email
Signed-off-by: dab246 <tdvu@linagora.com>

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit f4ffd113f192415c8613bf12fe40db1af902edaf)
2024-01-08 14:25:26 +01:00

91 lines
3.4 KiB
Dart

import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart';
import 'package:model/extensions/presentation_mailbox_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.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';
extension PresentationMailboxExtension on PresentationMailbox {
String getDisplayName(BuildContext context) {
if (isDefault) {
switch(role!.value.toLowerCase()) {
case PresentationMailbox.inboxRole:
return AppLocalizations.of(context).inboxMailboxDisplayName;
case PresentationMailbox.archiveRole:
return AppLocalizations.of(context).archiveMailboxDisplayName;
case PresentationMailbox.draftsRole:
return AppLocalizations.of(context).draftsMailboxDisplayName;
case PresentationMailbox.sentRole:
return AppLocalizations.of(context).sentMailboxDisplayName;
case PresentationMailbox.outboxRole:
return AppLocalizations.of(context).outboxMailboxDisplayName;
case PresentationMailbox.trashRole:
return AppLocalizations.of(context).trashMailboxDisplayName;
case PresentationMailbox.spamRole:
return AppLocalizations.of(context).spamMailboxDisplayName;
case PresentationMailbox.templatesRole:
return AppLocalizations.of(context).templatesMailboxDisplayName;
}
}
return name?.name ?? '';
}
String getMailboxIcon(ImagePaths imagePaths) {
if (hasRole()) {
switch(role!.value) {
case PresentationMailbox.inboxRole:
return imagePaths.icMailboxInbox;
case PresentationMailbox.draftsRole:
return imagePaths.icMailboxDrafts;
case PresentationMailbox.outboxRole:
return imagePaths.icMailboxOutbox;
case PresentationMailbox.archiveRole:
return imagePaths.icMailboxArchived;
case PresentationMailbox.sentRole:
return imagePaths.icMailboxSent;
case PresentationMailbox.trashRole:
return imagePaths.icMailboxTrash;
case PresentationMailbox.spamRole:
return imagePaths.icMailboxSpam;
case PresentationMailbox.templatesRole:
return imagePaths.icMailboxTemplate;
case 'all_mail':
return imagePaths.icMailboxAllMail;
default:
return imagePaths.icFolderMailbox;
}
} else if (isChildOfTeamMailboxes) {
switch(name!.name.toLowerCase()) {
case 'inbox':
return imagePaths.icMailboxInbox;
case 'outbox':
return imagePaths.icMailboxOutbox;
case 'drafts':
return imagePaths.icMailboxDrafts;
case 'archive':
return imagePaths.icMailboxArchived;
case 'sent':
return imagePaths.icMailboxSent;
case 'trash':
return imagePaths.icMailboxTrash;
case 'spam':
return imagePaths.icMailboxSpam;
case 'templates':
return imagePaths.icMailboxTemplate;
default:
return imagePaths.icFolderMailbox;
}
} else {
return imagePaths.icFolderMailbox;
}
}
Uri get mailboxRouteWeb => RouteUtils.createUrlWebLocationBar(
AppRoutes.dashboard,
router: NavigationRouter(mailboxId: id)
);
}