TF-46 Create object, builder for model and core module
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
|
||||
enum EmailActionType {
|
||||
reply,
|
||||
forward,
|
||||
replyAll,
|
||||
compose,
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
enum PrefixEmailAddress {
|
||||
to,
|
||||
cc,
|
||||
bcc
|
||||
}
|
||||
@@ -53,7 +53,7 @@ class PresentationEmail with EquatableMixin {
|
||||
|
||||
String getAvatarText() {
|
||||
if (getSenderName().isNotEmpty) {
|
||||
return getSenderName().substring(0, 1).toUpperCase();
|
||||
return getSenderName()[0].toUpperCase();
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -3,11 +3,27 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
extension EmailAddressExtension on EmailAddress {
|
||||
|
||||
String asString() {
|
||||
if (name != null && name!.isNotEmpty) {
|
||||
if (getName().isNotEmpty) {
|
||||
return name!;
|
||||
} else if (email != null && email!.isNotEmpty) {
|
||||
} else if (getEmail().isNotEmpty) {
|
||||
return email!;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
String asFullString() {
|
||||
if (getName().isNotEmpty) {
|
||||
if (getEmail().isNotEmpty) {
|
||||
return '${name!} <${email!}>';
|
||||
}
|
||||
return name!;
|
||||
} else if (getEmail().isNotEmpty) {
|
||||
return email!;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
String getEmail() => email != null ? email! : '';
|
||||
|
||||
String getName() => name != null ? name! : '';
|
||||
}
|
||||
@@ -4,20 +4,21 @@ import 'package:model/extensions/email_address_extension.dart';
|
||||
|
||||
extension ListEmailAddressExtension on Set<EmailAddress>? {
|
||||
|
||||
List<String> getListEmailAddress({ExpandMode expandMode = ExpandMode.EXPAND, int limitAddress = 1}) {
|
||||
List<String> getListEmailAddress({ExpandMode expandMode = ExpandMode.EXPAND, int limitAddress = 1, bool isFullEmailAddress = false}) {
|
||||
if (this != null) {
|
||||
if (expandMode == ExpandMode.EXPAND) {
|
||||
return this!.map((emailAddress) => emailAddress.asString()).toList();
|
||||
return this!.map((emailAddress) => isFullEmailAddress ? emailAddress.asFullString() : emailAddress.asString()).toList();
|
||||
} else {
|
||||
final address = this!.map((emailAddress) => emailAddress.asString()).toList();
|
||||
final address = this!.map((emailAddress) => isFullEmailAddress ? emailAddress.asFullString() : emailAddress.asString()).toList();
|
||||
return address.length > limitAddress ? address.sublist(0, limitAddress) : address;
|
||||
}
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
String listEmailAddressToString({ExpandMode expandMode = ExpandMode.EXPAND, int limitAddress = 1}) {
|
||||
return getListEmailAddress(expandMode: expandMode, limitAddress: limitAddress).join(', ');
|
||||
String listEmailAddressToString({ExpandMode expandMode = ExpandMode.EXPAND, int limitAddress = 1, bool isFullEmailAddress = false}) {
|
||||
final listEmail = getListEmailAddress(expandMode: expandMode, limitAddress: limitAddress, isFullEmailAddress: isFullEmailAddress);
|
||||
return listEmail.isNotEmpty ? listEmail.join(', ') : '';
|
||||
}
|
||||
|
||||
int numberEmailAddress() => this != null ? this!.length : 0;
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
||||
|
||||
extension UTCDateExtension on UTCDate? {
|
||||
|
||||
String formatDate({String pattern = 'yMMMd', String locale = 'en_US'}) {
|
||||
if (this != null) {
|
||||
return DateFormat(pattern, locale).format(this!.value);
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,9 +19,12 @@ export 'mailbox/expand_mode.dart';
|
||||
// Email
|
||||
export 'email/presentation_email.dart';
|
||||
export 'email/email_content.dart';
|
||||
export 'email/prefix_email_address.dart';
|
||||
export 'email/email_action_type.dart';
|
||||
export 'email/presentation_email_address.dart';
|
||||
|
||||
// Extensions
|
||||
export 'extensions/email_address_extension.dart';
|
||||
export 'extensions/list_email_address_extension.dart';
|
||||
export 'extensions/session_extension.dart';
|
||||
export 'extensions/session_extension.dart';
|
||||
export 'extensions/utcdate_extension.dart';
|
||||
Reference in New Issue
Block a user