feat(ui): wire redesigned detail island (header + description/steps card + work console)

Replace the long scrolling DetailsIslandView with the new pinned layout: a
separated TaskHeaderBar (trash↔skull, gear), a DescriptionStepsCard (text⇄steps
toggle, Preview = composed prompt), and a pinned WorkConsole (Output/Actions/
Session tabs). The three components now bind to DetailsIslandViewModel; their
scaffolding sample VMs are removed. Drops the old inline sections + AgentStripView.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
mika kuns
2026-06-04 19:49:41 +02:00
parent ce50f9fcce
commit c71026d125
10 changed files with 129 additions and 724 deletions

View File

@@ -2,7 +2,7 @@ using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Input.Platform;
using Avalonia.Interactivity;
using ClaudeDo.Ui.ViewModels.Islands.Detail;
using ClaudeDo.Ui.ViewModels.Islands;
namespace ClaudeDo.Ui.Views.Islands.Detail;
@@ -15,7 +15,7 @@ public partial class DescriptionStepsCard : UserControl
private async void OnCopyClick(object? sender, RoutedEventArgs e)
{
if (DataContext is not DescriptionStepsCardViewModel vm) return;
if (DataContext is not DetailsIslandViewModel vm) return;
var clipboard = TopLevel.GetTopLevel(this)?.Clipboard;
if (clipboard is null) return;
await clipboard.SetTextAsync(vm.ComposedPreview);
@@ -23,13 +23,13 @@ public partial class DescriptionStepsCard : UserControl
private void OnSubtaskTitleTapped(object? sender, TappedEventArgs e)
{
if (sender is TextBlock { DataContext: SubtaskRowSampleViewModel row })
if (sender is TextBlock { DataContext: SubtaskRowViewModel row })
row.IsEditing = true;
}
private void OnSubtaskEditLostFocus(object? sender, RoutedEventArgs e)
{
if (sender is TextBox { DataContext: SubtaskRowSampleViewModel row })
if (sender is TextBox { DataContext: SubtaskRowViewModel row })
row.IsEditing = false;
}
}