TF-4193 Refactor ThreadDetail: extract getLabelsForFirstEmail() to clarify label resolution logic
This commit is contained in:
+18
-3
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user