feat(ui): add MonitorPaneView
This commit is contained in:
53
src/ClaudeDo.Ui/Views/MissionControl/MonitorPaneView.axaml
Normal file
53
src/ClaudeDo.Ui/Views/MissionControl/MonitorPaneView.axaml
Normal file
@@ -0,0 +1,53 @@
|
||||
<UserControl xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:ClaudeDo.Ui.ViewModels.Islands"
|
||||
xmlns:islands="using:ClaudeDo.Ui.Views.Islands"
|
||||
xmlns:loc="using:ClaudeDo.Ui.Localization"
|
||||
x:DataType="vm:TaskMonitorViewModel"
|
||||
x:Class="ClaudeDo.Ui.Views.MissionControl.MonitorPaneView">
|
||||
<Border Background="{DynamicResource Surface1Brush}"
|
||||
BorderBrush="{DynamicResource LineBrush}"
|
||||
BorderThickness="1" CornerRadius="10" ClipToBounds="True">
|
||||
<DockPanel LastChildFill="True">
|
||||
|
||||
<!-- Footer: pane actions -->
|
||||
<Border DockPanel.Dock="Bottom"
|
||||
Background="{DynamicResource Surface2Brush}"
|
||||
BorderBrush="{DynamicResource LineBrush}"
|
||||
BorderThickness="0,1,0,0" Padding="8,6">
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
<Button Classes="btn" Content="{loc:Tr missionControl.openInApp}"
|
||||
Command="{Binding OpenInAppCommand}" />
|
||||
<Button Classes="btn" Content="{loc:Tr missionControl.cancel}"
|
||||
Command="{Binding CancelTaskCommand}"
|
||||
IsVisible="{Binding IsRunning}" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Blocking / roadblock banner -->
|
||||
<Border DockPanel.Dock="Top"
|
||||
IsVisible="{Binding ShowRoadblock}"
|
||||
Background="{DynamicResource ErrorTintBrush}"
|
||||
BorderBrush="{DynamicResource BloodBrush}"
|
||||
BorderThickness="0,0,0,1" Padding="12,6">
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
<PathIcon Data="{StaticResource Icon.Warning}"
|
||||
Foreground="{DynamicResource BloodBrush}"
|
||||
Width="13" Height="13" VerticalAlignment="Center" />
|
||||
<TextBlock Classes="meta" Text="{Binding RoadblockMessage}"
|
||||
Foreground="{DynamicResource BloodBrush}"
|
||||
TextWrapping="Wrap" VerticalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Console body: reuse SessionTerminalView -->
|
||||
<islands:SessionTerminalView
|
||||
Entries="{Binding Log}"
|
||||
Label="{Binding DisplayTitle}"
|
||||
IsRunning="{Binding IsRunning}"
|
||||
IsDone="{Binding IsDone}"
|
||||
IsFailed="{Binding IsFailed}" />
|
||||
|
||||
</DockPanel>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,8 @@
|
||||
using Avalonia.Controls;
|
||||
|
||||
namespace ClaudeDo.Ui.Views.MissionControl;
|
||||
|
||||
public partial class MonitorPaneView : UserControl
|
||||
{
|
||||
public MonitorPaneView() => InitializeComponent();
|
||||
}
|
||||
Reference in New Issue
Block a user