refactor(ui): unify text and close button in SettingsModalView

This commit is contained in:
mika kuns
2026-05-30 17:31:31 +02:00
parent 929e0ca1ee
commit ed8607d4c9

View File

@@ -37,11 +37,10 @@
<!-- Body: tabs + bottom validation/status strip --> <!-- Body: tabs + bottom validation/status strip -->
<DockPanel> <DockPanel>
<StackPanel DockPanel.Dock="Bottom" Margin="20,0,20,8" Spacing="2"> <StackPanel DockPanel.Dock="Bottom" Margin="20,0,20,8" Spacing="2">
<TextBlock Text="{Binding ValidationError}" <TextBlock Classes="meta" Text="{Binding ValidationError}"
Foreground="{DynamicResource BloodBrush}" FontSize="{StaticResource FontSizeMono}" Foreground="{DynamicResource BloodBrush}"
IsVisible="{Binding ValidationError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/> IsVisible="{Binding ValidationError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
<TextBlock Text="{Binding StatusMessage}" <TextBlock Classes="meta" Text="{Binding StatusMessage}"
Foreground="{DynamicResource TextDimBrush}" FontSize="{StaticResource FontSizeMono}"
IsVisible="{Binding StatusMessage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/> IsVisible="{Binding StatusMessage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
</StackPanel> </StackPanel>
@@ -102,7 +101,7 @@
<NumericUpDown Value="{Binding Worktrees.WorktreeAutoCleanupDays, Mode=TwoWay}" <NumericUpDown Value="{Binding Worktrees.WorktreeAutoCleanupDays, Mode=TwoWay}"
Width="130" Minimum="1" Maximum="365" Increment="1" FormatString="0" Width="130" Minimum="1" Maximum="365" Increment="1" FormatString="0"
IsEnabled="{Binding Worktrees.WorktreeAutoCleanupEnabled}"/> IsEnabled="{Binding Worktrees.WorktreeAutoCleanupEnabled}"/>
<TextBlock Text="days" VerticalAlignment="Center" Foreground="{DynamicResource TextDimBrush}"/> <TextBlock Classes="body" Text="days" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
<Border BorderBrush="{DynamicResource LineBrush}" BorderThickness="0,1,0,0" Margin="0,4,0,0"/> <Border BorderBrush="{DynamicResource LineBrush}" BorderThickness="0,1,0,0" Margin="0,4,0,0"/>
<StackPanel Spacing="8"> <StackPanel Spacing="8">
@@ -129,8 +128,7 @@
</Border> </Border>
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
<TextBlock Text="{Binding Worktrees.StatusMessage}" <TextBlock Classes="meta" Text="{Binding Worktrees.StatusMessage}"
Foreground="{DynamicResource TextDimBrush}" FontSize="{StaticResource FontSizeMono}"
IsVisible="{Binding Worktrees.StatusMessage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/> IsVisible="{Binding Worktrees.StatusMessage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
@@ -141,9 +139,8 @@
<StackPanel Spacing="14" Margin="0,8,0,0"> <StackPanel Spacing="14" Margin="0,8,0,0">
<StackPanel Spacing="6"> <StackPanel Spacing="6">
<TextBlock Classes="section-label" Text="AGENTS"/> <TextBlock Classes="section-label" Text="AGENTS"/>
<TextBlock Text="Restore bundled default agents. Existing files are not overwritten." <TextBlock Classes="meta" Text="Restore bundled default agents. Existing files are not overwritten."
FontSize="{StaticResource FontSizeMono}" TextWrapping="Wrap" TextWrapping="Wrap"/>
Foreground="{DynamicResource TextDimBrush}"/>
<Button Content="Restore default agents" <Button Content="Restore default agents"
Command="{Binding Files.RestoreDefaultAgentsCommand}" Command="{Binding Files.RestoreDefaultAgentsCommand}"
IsEnabled="{Binding !Files.IsBusy}" IsEnabled="{Binding !Files.IsBusy}"
@@ -166,8 +163,7 @@
Command="{Binding Files.OpenPromptCommand}" CommandParameter="Agent"/> Command="{Binding Files.OpenPromptCommand}" CommandParameter="Agent"/>
</Grid> </Grid>
</StackPanel> </StackPanel>
<TextBlock Text="{Binding Files.StatusMessage}" <TextBlock Classes="meta" Text="{Binding Files.StatusMessage}"
Foreground="{DynamicResource TextDimBrush}" FontSize="{StaticResource FontSizeMono}"
IsVisible="{Binding Files.StatusMessage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/> IsVisible="{Binding Files.StatusMessage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
@@ -176,8 +172,7 @@
<TabItem Header="Prime Claude"> <TabItem Header="Prime Claude">
<ScrollViewer> <ScrollViewer>
<StackPanel Spacing="12" Margin="0,8,0,0"> <StackPanel Spacing="12" Margin="0,8,0,0">
<TextBlock TextWrapping="Wrap" FontSize="{StaticResource FontSizeMono}" <TextBlock Classes="meta" TextWrapping="Wrap"
Foreground="{DynamicResource TextDimBrush}"
Text="Prime your Claude usage window each morning by firing a single non-interactive ping at a chosen time. Only runs while ClaudeDo is open. If the app starts within 30 minutes of the target time, the ping fires immediately."/> Text="Prime your Claude usage window each morning by firing a single non-interactive ping at a chosen time. Only runs while ClaudeDo is open. If the app starts within 30 minutes of the target time, the ping fires immediately."/>
<ItemsControl ItemsSource="{Binding Prime.Rows}"> <ItemsControl ItemsSource="{Binding Prime.Rows}">
<ItemsControl.ItemTemplate> <ItemsControl.ItemTemplate>
@@ -198,8 +193,7 @@
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<CheckBox Grid.Column="3" Content="MonFri" <CheckBox Grid.Column="3" Content="MonFri"
IsChecked="{Binding WorkdaysOnly, Mode=TwoWay}" VerticalAlignment="Center"/> IsChecked="{Binding WorkdaysOnly, Mode=TwoWay}" VerticalAlignment="Center"/>
<TextBlock Grid.Column="4" Text="{Binding LastRunLabel}" VerticalAlignment="Center" <TextBlock Classes="meta" Grid.Column="4" Text="{Binding LastRunLabel}" VerticalAlignment="Center"
Foreground="{DynamicResource TextDimBrush}" FontSize="{StaticResource FontSizeMono}"
MinWidth="80"/> MinWidth="80"/>
<Button Grid.Column="5" Content="✕" <Button Grid.Column="5" Content="✕"
Command="{Binding $parent[ItemsControl].((vm:SettingsModalViewModel)DataContext).Prime.RemoveScheduleCommand}" Command="{Binding $parent[ItemsControl].((vm:SettingsModalViewModel)DataContext).Prime.RemoveScheduleCommand}"