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;
if (presentationEmail.emailInThreadStatus == EmailInThreadStatus.collapsed) {
final emailLabels = labels?.isNotEmpty == true && isFirstEmailInThreadDetail
? emailIdsPresentation.values.last?.getLabelList(labels!)
: null;
final emailLabels = _getLabelsForFirstEmail(
isFirstEmailInThreadDetail: isFirstEmailInThreadDetail,
availableLabels: labels,
);
return ThreadDetailCollapsedEmail(
presentationEmail: presentationEmail.copyWith(
@@ -109,4 +110,18 @@ extension GetThreadDetailEmailViews on ThreadDetailController {
);
}).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);
}
}