diff --git a/src/ClaudeDo.Ui/Design/IslandStyles.axaml b/src/ClaudeDo.Ui/Design/IslandStyles.axaml index ce7348e8..cfb61d9a 100644 --- a/src/ClaudeDo.Ui/Design/IslandStyles.axaml +++ b/src/ClaudeDo.Ui/Design/IslandStyles.axaml @@ -867,6 +867,19 @@ + + + diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/ListFolderNavItemViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/ListFolderNavItemViewModel.cs index 39cf4941..98121452 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/ListFolderNavItemViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/ListFolderNavItemViewModel.cs @@ -18,6 +18,8 @@ public sealed partial class ListFolderNavItemViewModel : ViewModelBase [ObservableProperty] private string _iconKey = "Folder"; /// Hex colour for name + guide line; null = theme default. [ObservableProperty] private string? _color; + /// Set on the first user toggle so the expand animation skips folders that load already open. + [ObservableProperty] private bool _animateExpand; [ObservableProperty] [NotifyPropertyChangedFor(nameof(ShowCount))] private bool _isCollapsed; diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/ListsIslandViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/ListsIslandViewModel.cs index d327b1c6..dc9afa95 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/ListsIslandViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/ListsIslandViewModel.cs @@ -730,6 +730,7 @@ public sealed partial class ListsIslandViewModel : ViewModelBase, IDisposable private void ToggleFolder(ListFolderNavItemViewModel? folder) { if (folder is null) return; + folder.AnimateExpand = true; folder.IsCollapsed = !folder.IsCollapsed; if (_folderCollapseCts.TryGetValue(folder.Id, out var previous)) previous.Cancel(); var cts = new CancellationTokenSource(); diff --git a/src/ClaudeDo.Ui/Views/Islands/ListsIslandView.axaml b/src/ClaudeDo.Ui/Views/Islands/ListsIslandView.axaml index 601e6f68..077037d5 100644 --- a/src/ClaudeDo.Ui/Views/Islands/ListsIslandView.axaml +++ b/src/ClaudeDo.Ui/Views/Islands/ListsIslandView.axaml @@ -162,7 +162,8 @@ - +