<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:vm="using:SourceGit.ViewModels"
             xmlns:c="using:SourceGit.Converters"
             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
             x:Class="SourceGit.Views.AddWorktree"
             x:DataType="vm:AddWorktree">
  <StackPanel Orientation="Vertical" Margin="8,0">
    <StackPanel Orientation="Horizontal">
      <Path Width="16" Height="16"
            Data="{StaticResource Icons.Worktree.Add}"/>

      <TextBlock FontSize="18"
                 Margin="8,0,0,0"
                 Classes="bold"
                 Text="{DynamicResource Text.AddWorktree}"/>
    </StackPanel>
    
    <Grid Margin="0,16,0,0" RowDefinitions="32,32,32,Auto,Auto" ColumnDefinitions="150,*">
      <TextBlock Grid.Row="0" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.AddWorktree.Location}"/>
      <TextBox Grid.Row="0" Grid.Column="1"
               x:Name="TxtLocation"
               Height="28"
               CornerRadius="3"
               Text="{Binding Path, Mode=TwoWay}"
               Watermark="{DynamicResource Text.AddWorktree.Location.Placeholder}">
        <TextBox.InnerRightContent>
          <Button Classes="icon_button" Width="28" Height="28" Margin="4,0,0,0" Click="SelectLocation">
            <Path Data="{StaticResource Icons.Folder.Open}" Fill="{DynamicResource Brush.FG1}"/>
          </Button>
        </TextBox.InnerRightContent>
      </TextBox>

      <TextBlock Grid.Row="1" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.AddWorktree.WhatToCheckout}"/>
      <StackPanel Grid.Row="1" Grid.Column="1" Height="32" Orientation="Horizontal">
        <RadioButton Content="{DynamicResource Text.AddWorktree.WhatToCheckout.CreateNew}"
                     GroupName="WhatToCheckout"
                     IsChecked="{Binding CreateNewBranch, Mode=TwoWay}"/>
        <RadioButton Content="{DynamicResource Text.AddWorktree.WhatToCheckout.Existing}"
                     GroupName="WhatToCheckout"
                     Margin="8,0,0,0"/>
      </StackPanel>

      <TextBlock Grid.Row="2" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.AddWorktree.Name}"/>
      <TextBox Grid.Row="2" Grid.Column="1"
               Height="28"
               CornerRadius="3"
               Text="{Binding SelectedBranch, Mode=TwoWay}"
               Watermark="{DynamicResource Text.AddWorktree.Name.Placeholder}"
               IsEnabled="{Binding CreateNewBranch, Mode=OneWay}"
               IsVisible="{Binding CreateNewBranch, Mode=OneWay}"/>
      <ComboBox Grid.Row="2" Grid.Column="1"
                Height="28" Padding="8,0"
                VerticalAlignment="Center" HorizontalAlignment="Stretch"
                ItemsSource="{Binding LocalBranches}"
                SelectedItem="{Binding SelectedBranch, Mode=TwoWay}"
                IsEnabled="{Binding !CreateNewBranch, Mode=OneWay}"
                IsVisible="{Binding !CreateNewBranch, Mode=OneWay}">
        <ComboBox.ItemTemplate>
          <DataTemplate>
            <StackPanel 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}"/>
            </StackPanel>
          </DataTemplate>
        </ComboBox.ItemTemplate>
      </ComboBox>

      <Border Grid.Row="3" Grid.Column="0"
              Height="32"
              IsVisible="{Binding SetTrackingBranch, Mode=OneWay}">
        <TextBlock HorizontalAlignment="Right" VerticalAlignment="Center"
                   Margin="0,0,8,0"
                   Text="{DynamicResource Text.AddWorktree.Tracking}"/>
      </Border>
      <ComboBox Grid.Row="3" Grid.Column="1"
                Height="28" Padding="8,0"
                VerticalAlignment="Center" HorizontalAlignment="Stretch"
                ItemsSource="{Binding RemoteBranches}"
                IsTextSearchEnabled="True"
                SelectedItem="{Binding SelectedTrackingBranch, Mode=TwoWay}"
                IsVisible="{Binding SetTrackingBranch, Mode=OneWay}">
        <ComboBox.ItemTemplate>
          <DataTemplate>
            <StackPanel 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}"/>
            </StackPanel>
          </DataTemplate>
        </ComboBox.ItemTemplate>
      </ComboBox>

      <CheckBox Grid.Row="4" Grid.Column="1"
                Height="32"
                Content="{DynamicResource Text.AddWorktree.Tracking.Toggle}"
                IsChecked="{Binding SetTrackingBranch, Mode=TwoWay}"
                IsVisible="{Binding RemoteBranches, Converter={x:Static c:ListConverters.IsNotNullOrEmpty}}"/>
    </Grid>
  </StackPanel>
</UserControl>
