Partial Busy state for mark as read requests

This commit is contained in:
Burak Kaan Köse
2026-02-05 12:48:38 +01:00
parent 0eba778158
commit 2fd600d47d
15 changed files with 266 additions and 420 deletions
+14 -2
View File
@@ -17,18 +17,30 @@ public record MarkReadRequest(MailCopy Item, bool IsRead) : MailRequestBase(Item
public bool ExcludeMustHaveFolders => true;
/// <summary>
/// Gets whether this request represents an actual state change.
/// If the mail is already in the desired read state, no change is needed.
/// </summary>
public bool IsNoOp => Item.IsRead == IsRead;
public override void ApplyUIChanges()
{
// Skip UI update if the mail is already in the desired state
if (IsNoOp) return;
Item.IsRead = IsRead;
WeakReferenceMessenger.Default.Send(new MailUpdatedMessage(Item, MailUpdateSource.Client));
WeakReferenceMessenger.Default.Send(new MailUpdatedMessage(Item, MailUpdateSource.ClientUpdated));
}
public override void RevertUIChanges()
{
// Skip UI revert if this was a no-op request
if (IsNoOp) return;
Item.IsRead = !IsRead;
WeakReferenceMessenger.Default.Send(new MailUpdatedMessage(Item, MailUpdateSource.Client));
WeakReferenceMessenger.Default.Send(new MailUpdatedMessage(Item, MailUpdateSource.ClientReverted));
}
}