TW-4308 Add labels for several messages part 2 (#4431)
Add ChooseLabelModal, delegate, and update label UI components Wire add-labels action across Thread, Search, and Dashboard
This commit is contained in:
+22
-1
@@ -75,11 +75,32 @@ extension HandleLogicLabelExtension on MailboxDashBoardController {
|
||||
updateEmailFlagByEmailIds(
|
||||
[emailId],
|
||||
isLabelAdded: !shouldRemove,
|
||||
labelKeyword: labelKeyword,
|
||||
labelKeywords: [labelKeyword],
|
||||
);
|
||||
}
|
||||
|
||||
void _refreshLabelSettingEnabled() {
|
||||
labelController.isLabelSettingEnabled.refresh();
|
||||
}
|
||||
|
||||
void syncListLabelForListEmail(
|
||||
List<EmailId> emailIds,
|
||||
List<KeyWordIdentifier> labelKeywords,
|
||||
{bool shouldRemove = false}
|
||||
) {
|
||||
_syncLabelsForEmailList(emailIds, labelKeywords, shouldRemove);
|
||||
_refreshLabelSettingEnabled();
|
||||
}
|
||||
|
||||
void _syncLabelsForEmailList(
|
||||
List<EmailId> emailIds,
|
||||
List<KeyWordIdentifier> labelKeywords,
|
||||
bool shouldRemove,
|
||||
) {
|
||||
updateEmailFlagByEmailIds(
|
||||
emailIds,
|
||||
labelKeywords: labelKeywords,
|
||||
isLabelAdded: !shouldRemove,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+14
-4
@@ -15,13 +15,13 @@ extension UpdateCurrentEmailsFlagsExtension on MailboxDashBoardController {
|
||||
bool markAsAnswered = false,
|
||||
bool markAsForwarded = false,
|
||||
bool isLabelAdded = false,
|
||||
KeyWordIdentifier? labelKeyword,
|
||||
List<KeyWordIdentifier>? labelKeywords,
|
||||
}) {
|
||||
if (readAction == null &&
|
||||
markStarAction == null &&
|
||||
!markAsAnswered &&
|
||||
!markAsForwarded &&
|
||||
labelKeyword == null) {
|
||||
labelKeywords?.isNotEmpty != true) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -64,8 +64,8 @@ extension UpdateCurrentEmailsFlagsExtension on MailboxDashBoardController {
|
||||
_updateKeyword(email, KeyWordIdentifier.emailForwarded, true);
|
||||
}
|
||||
|
||||
if (labelKeyword != null) {
|
||||
_updateKeyword(email, labelKeyword, isLabelAdded);
|
||||
if (labelKeywords?.isNotEmpty == true) {
|
||||
_updateListKeywords(email, labelKeywords!, isLabelAdded);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,6 +84,16 @@ extension UpdateCurrentEmailsFlagsExtension on MailboxDashBoardController {
|
||||
}
|
||||
}
|
||||
|
||||
void _updateListKeywords(
|
||||
PresentationEmail presentationEmail,
|
||||
List<KeyWordIdentifier> keywords,
|
||||
bool value,
|
||||
) {
|
||||
for (var keyword in keywords) {
|
||||
_updateKeyword(presentationEmail, keyword, value);
|
||||
}
|
||||
}
|
||||
|
||||
void updateEmailAnswered(EmailId emailId) {
|
||||
dispatchThreadDetailUIAction(UpdatedEmailKeywordsAction(
|
||||
emailId,
|
||||
|
||||
Reference in New Issue
Block a user