fix(ui): batch UI updates for bulk mark-as-read to prevent UI freeze (#786)

This commit is contained in:
Wynn Zeng
2026-01-28 03:25:05 +08:00
committed by GitHub
parent 7f8c6776fc
commit 4f65502c95
5 changed files with 73 additions and 9 deletions
@@ -13,22 +13,26 @@ public record MarkFolderAsReadRequest(MailItemFolder Folder, List<MailCopy> Mail
{
public override void ApplyUIChanges()
{
if (MailsToMarkRead == null || MailsToMarkRead.Count == 0) return;
foreach (var item in MailsToMarkRead)
{
item.IsRead = true;
WeakReferenceMessenger.Default.Send(new MailUpdatedMessage(item));
}
WeakReferenceMessenger.Default.Send(new BulkMailUpdatedMessage(MailsToMarkRead));
}
public override void RevertUIChanges()
{
if (MailsToMarkRead == null || MailsToMarkRead.Count == 0) return;
foreach (var item in MailsToMarkRead)
{
item.IsRead = false;
WeakReferenceMessenger.Default.Send(new MailUpdatedMessage(item));
}
WeakReferenceMessenger.Default.Send(new BulkMailUpdatedMessage(MailsToMarkRead));
}
public List<Guid> SynchronizationFolderIds => [Folder.Id];