TF-4193 Refactor ThreadDetail: extract getLabelsForFirstEmail() to clarify label resolution logic

This commit is contained in:
dab246
2025-12-10 18:41:46 +07:00
committed by Dat H. Pham
parent 6b1c7e23dc
commit 4ce589c2b7
@@ -46,9 +46,10 @@ extension GetThreadDetailEmailViews on ThreadDetailController {
final isFirstEmailInThreadDetail = indexOfEmailId == 0; final isFirstEmailInThreadDetail = indexOfEmailId == 0;
if (presentationEmail.emailInThreadStatus == EmailInThreadStatus.collapsed) { if (presentationEmail.emailInThreadStatus == EmailInThreadStatus.collapsed) {
final emailLabels = labels?.isNotEmpty == true && isFirstEmailInThreadDetail final emailLabels = _getLabelsForFirstEmail(
? emailIdsPresentation.values.last?.getLabelList(labels!) isFirstEmailInThreadDetail: isFirstEmailInThreadDetail,
: null; availableLabels: labels,
);
return ThreadDetailCollapsedEmail( return ThreadDetailCollapsedEmail(
presentationEmail: presentationEmail.copyWith( presentationEmail: presentationEmail.copyWith(
@@ -109,4 +110,18 @@ extension GetThreadDetailEmailViews on ThreadDetailController {
); );
}).toList(); }).toList();
} }
List<Label>? _getLabelsForFirstEmail({
required bool isFirstEmailInThreadDetail,
required List<Label>? availableLabels,
}) {
if (!isFirstEmailInThreadDetail ||
availableLabels == null ||
availableLabels.isEmpty) {
return null;
}
final lastEmail = emailIdsPresentation.values.last;
return lastEmail?.getLabelList(availableLabels);
}
} }