Listen bekommen eine Icon-Spalte (Migration AddListIcon) und einen Icon-Picker in den Listeneinstellungen; 34 kuratierte Geometrien aus der Icon-Bibliothek, Fallback auf "Folder" bei unbekanntem Key. Der Metadata-Footer im Task-Detail entfällt; created-at wandert in die Header-Zeile neben das ID-Badge, der Close-Button (und CloseDetailsCommand) fällt weg.
30 lines
1.5 KiB
C#
30 lines
1.5 KiB
C#
using ClaudeDo.Data.Models;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
|
namespace ClaudeDo.Ui.ViewModels.Islands;
|
|
|
|
public sealed partial class ListNavItemViewModel : ViewModelBase
|
|
{
|
|
public required string Id { get; init; }
|
|
public required ListKind Kind { get; init; }
|
|
[ObservableProperty] private string _name = "";
|
|
[ObservableProperty] private int _count;
|
|
[ObservableProperty] private bool _isActive;
|
|
[ObservableProperty] private string? _workingDir;
|
|
[ObservableProperty] private string _defaultCommitType = CommitTypeRegistry.DefaultType;
|
|
// Reminder list: tasks created here default to manual.
|
|
[ObservableProperty] private bool _isManual;
|
|
// Whether this list's .claudedo/ findings folder is committed with the repo (ListEntity.FindingsTracked).
|
|
[ObservableProperty] private bool _findingsTracked;
|
|
// True when a ticket-system base URL is configured AND this list has a linked ticket project
|
|
// (ListConfigEntity.TicketProjectId) — gates the "Update from ticket system" context menu entry.
|
|
[ObservableProperty] private bool _hasTicketProject;
|
|
[ObservableProperty] private bool _dropHintAbove;
|
|
[ObservableProperty] private bool _dropHintBelow;
|
|
// Set while a dragged task hovers over this row as a move target — distinct from
|
|
// DropHintAbove/Below, which mark an insertion point for list reordering.
|
|
[ObservableProperty] private bool _isTaskDropTarget;
|
|
// Settable (not init) so a list-settings icon change refreshes the row in place.
|
|
[ObservableProperty] private string? _iconKey;
|
|
}
|