feat(ui): polish worktrees overview modal
- Restyle to match ListSettingsModalView: custom title bar, DeepBrush toolbar, LineBrush footer, SurfaceBrush outer border, no system chrome - Add column header row (TASK / BRANCH / STATE / DIFF / AGE) with TextFaintBrush + MonoFont + LetterSpacing, separator line below - Replace wt-row style with task-row-equivalent: transparent bg, CornerRadius 8, 1px border, :pointerover + .selected transitions - Add IsSelected to WorktreeOverviewRowViewModel; SelectRow() helper on modal VM clears previous selection before setting new one - Wire OnRowTapped in code-behind for click-to-select - Wire ShowDiff: VM takes Func<WorktreeModalViewModel> factory, builds diffVm and delegates window creation to both call sites (MainWindow and ListsIslandView); register Func<WorktreeModalViewModel> in DI Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,15 @@ public partial class ListsIslandView : UserControl
|
||||
if (item is not null) v.SelectedList = item;
|
||||
}
|
||||
};
|
||||
// TODO: ShowDiffAction and ConfirmAction not wired in v1
|
||||
modal.ShowDiffAction = diffVm =>
|
||||
{
|
||||
var top2 = TopLevel.GetTopLevel(this) as Window;
|
||||
if (top2 is null) return;
|
||||
var dlg = new WorktreeModalView { DataContext = diffVm };
|
||||
diffVm.CloseAction = () => dlg.Close();
|
||||
_ = diffVm.LoadAsync();
|
||||
_ = dlg.ShowDialog(top2);
|
||||
};
|
||||
var top = TopLevel.GetTopLevel(this) as Window;
|
||||
if (top is null) window.Show();
|
||||
else await window.ShowDialog(top);
|
||||
|
||||
Reference in New Issue
Block a user