Files
workavia-mail-front/model/lib/extensions/presentation_email_extension.dart
T
2021-09-27 08:14:26 +07:00

72 lines
1.8 KiB
Dart

import 'package:core/core.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:model/model.dart';
extension PresentationEmailExtension on PresentationEmail {
int numberOfAllEmailAddress() => to.numberEmailAddress() + cc.numberEmailAddress() + bcc.numberEmailAddress();
String getEmailDateTime(String newLocale, {String? pattern}) {
final emailTime = sentAt ?? receivedAt;
if (emailTime != null) {
return emailTime.formatDate(pattern: pattern ?? emailTime.value.toPattern(), locale: newLocale);
}
return '';
}
PresentationEmail toggleSelect() {
return PresentationEmail(
id,
keywords: keywords,
size: size,
receivedAt: receivedAt,
hasAttachment: hasAttachment,
preview: preview,
subject: subject,
sentAt: sentAt,
from: from,
to: to,
cc: cc,
bcc: bcc,
replyTo: replyTo,
selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE
);
}
PresentationEmail toSelectedEmail({required SelectMode selectMode}) {
return PresentationEmail(
id,
keywords: keywords,
size: size,
receivedAt: receivedAt,
hasAttachment: hasAttachment,
preview: preview,
subject: subject,
sentAt: sentAt,
from: from,
to: to,
cc: cc,
bcc: bcc,
replyTo: replyTo,
selectMode: selectMode
);
}
Email toEmail() {
return Email(
id,
keywords: keywords,
size: size,
receivedAt: receivedAt,
hasAttachment: hasAttachment,
preview: preview,
subject: subject,
sentAt: sentAt,
from: from,
to: to,
cc: cc,
bcc: bcc,
replyTo: replyTo
);
}
}