TF-46 Create object, builder for model and core module

This commit is contained in:
dab246
2021-08-26 17:03:04 +07:00
committed by Dat H. Pham
parent b70fc6edb8
commit 17bad5ec51
21 changed files with 203 additions and 12 deletions
+7
View File
@@ -0,0 +1,7 @@
enum EmailActionType {
reply,
forward,
replyAll,
compose,
}
@@ -0,0 +1,6 @@
enum PrefixEmailAddress {
to,
cc,
bcc
}
+1 -1
View File
@@ -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 '';
}
}
}
+4 -1
View File
@@ -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';