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(); }