<UserControl xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:m="using:SourceGit.Models"
             xmlns:vm="using:SourceGit.ViewModels"
             xmlns:c="using:SourceGit.Converters"
             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
             x:Class="SourceGit.Views.Reset"
             x:DataType="vm:Reset">
  <StackPanel Orientation="Vertical" Margin="8,0">
    <StackPanel Orientation="Horizontal">
      <Path Width="16" Height="16"
            Data="{StaticResource Icons.Reset}"/>

      <TextBlock FontSize="18"
                 Margin="8,0,0,0"
                 Classes="bold"
                 Text="{DynamicResource Text.Reset}"/>
    </StackPanel>
    
    <Grid Margin="0,16,0,0" RowDefinitions="32,32,32" ColumnDefinitions="120,*">
      <TextBlock Grid.Row="0" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Reset.Target}"/>
      <StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" Height="20" VerticalAlignment="Center">
        <Path Margin="0,0,8,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG1}" Data="{StaticResource Icons.Branch}"/>
        <TextBlock Text="{Binding Current.Name}"/>
      </StackPanel>

      <TextBlock Grid.Row="1" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Reset.MoveTo}"/>
      <Grid Grid.Row="1" Grid.Column="1" ColumnDefinitions="Auto,Auto,*" Height="20" VerticalAlignment="Center">
        <Path Grid.Column="0" Margin="0,0,8,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG1}" Data="{StaticResource Icons.Commit}"/>
        <TextBlock Grid.Column="1" Text="{Binding To.SHA, Converter={x:Static c:StringConverters.ToShortSHA}}" Foreground="DarkOrange"/>
        <TextBlock Grid.Column="2" Text="{Binding To.Subject}" Margin="8,0,0,0" TextTrimming="CharacterEllipsis"/>
      </Grid>

      <TextBlock Grid.Row="2" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Reset.Mode}"/>
      <ComboBox Grid.Row="2" Grid.Column="1"
                x:Name="ResetMode"
                Height="28" Padding="8,0"
                VerticalAlignment="Center" HorizontalAlignment="Stretch"
                ItemsSource="{Binding Source={x:Static m:ResetMode.Supported}}"
                SelectedItem="{Binding SelectedMode, Mode=TwoWay}"
                KeyDown="OnResetModeKeyDown">
        <ComboBox.ItemTemplate>
          <DataTemplate DataType="m:ResetMode">
            <Grid ColumnDefinitions="16,60,*,Auto">
              <Ellipse Grid.Column="0" Width="12" Height="12" Fill="{Binding Color}"/>
              <TextBlock Grid.Column="1" Text="{Binding Name}" Margin="2,0,0,0"/>
              <TextBlock Grid.Column="2" Text="{Binding Desc}" Margin="2,0,16,0" FontSize="11" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right"/>
              <TextBlock Grid.Column="3" Text="{Binding Key}" FontSize="11" FontWeight="Bold" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right"/>
            </Grid>
          </DataTemplate>
        </ComboBox.ItemTemplate>

        <ComboBox.SelectionBoxItemTemplate>
          <DataTemplate DataType="m:ResetMode">
            <Grid ColumnDefinitions="16,60,*">
              <Ellipse Grid.Column="0" Width="12" Height="12" Fill="{Binding Color}"/>
              <TextBlock Grid.Column="1" Text="{Binding Name}" Margin="2,0,0,0"/>
              <TextBlock Grid.Column="2" Text="{Binding Desc}" Margin="2,0,16,0" FontSize="11" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right"/>
            </Grid>
          </DataTemplate>
        </ComboBox.SelectionBoxItemTemplate>
      </ComboBox>
    </Grid>
  </StackPanel>
</UserControl>
