TF-3894 Fix blank email content when opening email

This commit is contained in:
dab246
2025-09-03 10:37:01 +07:00
committed by Dat H. Pham
parent 949c1a698c
commit 5a64ff7e8f
41 changed files with 309 additions and 169 deletions
+2 -1
View File
@@ -421,11 +421,12 @@ abstract class BaseController extends GetxController
BuildContext context,
Session? session,
AccountId? accountId,
String ownEmailAddress,
) {
if (PlatformInfo.isMobile) {
showLogoutConfirmDialog(
context: context,
userAddress: session?.getOwnEmailAddressOrEmpty() ?? '',
userAddress: ownEmailAddress,
onConfirmAction: () => _handleLogoutAction(session, accountId),
);
} else {
@@ -0,0 +1,42 @@
import 'package:core/utils/app_logger.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:model/extensions/session_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
mixin OwnEmailAddressMixin {
static const String emptyOwnEmailAddress = '';
final RxString ownEmailAddress = RxString('');
Session? sessionCurrent;
void synchronizeOwnEmailAddress(String emailAddress) {
log('$runtimeType::synchronizeOwnEmailAddress:OwnEmailAddress = ${ownEmailAddress.value}, NewEmailAddress = $emailAddress');
if (ownEmailAddress.value.trim().isNotEmpty) return;
ownEmailAddress.value = emailAddress;
}
void updateOwnEmailAddressFromIdentities(List<Identity> listIdentities) {
if (ownEmailAddress.value.trim().isNotEmpty) return;
if (listIdentities.isEmpty) {
synchronizeOwnEmailAddress(emptyOwnEmailAddress);
ownEmailAddress.refresh();
return;
}
final identityEmailAddress = listIdentities.firstOrNull?.email ?? '';
final domain = EmailUtils.getDomainByEmailAddress(identityEmailAddress);
final userEmailAddress =
sessionCurrent?.generateOwnEmailAddressFromDomain(domain) ?? '';
log('$runtimeType::updateOwnEmailAddressFromIdentities: UserEmailAddress = $userEmailAddress');
if (userEmailAddress.isNotEmpty) {
synchronizeOwnEmailAddress(userEmailAddress);
} else {
synchronizeOwnEmailAddress(emptyOwnEmailAddress);
ownEmailAddress.refresh();
}
}
}