using System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.ComponentModel;
namespace ClaudeDo.Ui.ViewModels.Islands;
///
/// A sidebar folder row. Not a and not a
/// — a folder holds no tasks and is never selectable, so tapping it
/// toggles instead of changing the selection.
///
public sealed partial class ListFolderNavItemViewModel : ViewModelBase
{
public required string Id { get; init; }
[ObservableProperty] private string _name = "";
[ObservableProperty] private string _iconKey = "Folder";
[ObservableProperty] private bool _isCollapsed;
// Sum of the child lists' counts — a collapsed folder still shows what's inside it.
[ObservableProperty] private int _count;
// Set while a dragged list row hovers over this folder header (move-into-folder target).
[ObservableProperty] private bool _isDropTarget;
public ObservableCollection Lists { get; } = new();
}