New list view items.

This commit is contained in:
Burak Kaan Köse
2025-10-27 22:52:26 +01:00
parent 4eea21c4f5
commit 4f85fa6ba9
12 changed files with 398 additions and 243 deletions
@@ -8,7 +8,7 @@ namespace Wino.Mail.ViewModels.Data;
/// <summary>
/// Single view model for IMailItem representation.
/// </summary>
public partial class MailItemViewModel(MailCopy mailCopy) : ObservableObject, IMailListItem
public partial class MailItemViewModel(MailCopy mailCopy) : ObservableRecipient, IMailListItem
{
public DateTime CreationDate => MailCopy.CreationDate;
[ObservableProperty]
@@ -18,6 +18,7 @@ public partial class MailItemViewModel(MailCopy mailCopy) : ObservableObject, IM
public partial bool ThumbnailUpdatedEvent { get; set; } = false;
[ObservableProperty]
[NotifyPropertyChangedRecipients]
public partial bool IsSelected { get; set; }
[ObservableProperty]
@@ -89,10 +90,6 @@ public partial class MailItemViewModel(MailCopy mailCopy) : ObservableObject, IM
set => SetProperty(MailCopy.HasAttachments, value, MailCopy, (u, n) => u.HasAttachments = n);
}
partial void OnIsSelectedChanged(bool oldValue, bool newValue)
{
}
public IEnumerable<Guid> GetContainingIds() => [MailCopy.UniqueId];
public IEnumerable<MailItemViewModel> GetSelectedMailItems()
@@ -17,11 +17,16 @@ public partial class ThreadMailItemViewModel : ObservableRecipient, IDisposable,
[ObservableProperty]
[NotifyPropertyChangedRecipients]
[NotifyPropertyChangedFor(nameof(IsSelectedOrExpanded))]
public partial bool IsThreadExpanded { get; set; }
[ObservableProperty]
[NotifyPropertyChangedRecipients]
[NotifyPropertyChangedFor(nameof(IsSelectedOrExpanded))]
public partial bool IsSelected { get; set; }
public bool IsSelectedOrExpanded => IsSelected || IsThreadExpanded;
/// <summary>
/// Gets the number of emails in this thread
/// </summary>