using System.Windows; using System.Windows.Controls; using System.Windows.Input; using ytLive.Helpers; using ytLive.ViewModels; namespace ytLive; public partial class SocialsDialog : UserControl { private SocialsDialogViewModel _viewModel => (SocialsDialogViewModel)DataContext; public SocialsDialog() { InitializeComponent(); } private void SignInButton_Click(object sender, RoutedEventArgs e) => _viewModel.SignInCommand.Execute(null); private void SlotAdd_Click(object sender, RoutedEventArgs e) { if (sender is FrameworkElement { Tag: int index }) _viewModel.StartEdit(index); } private void SlotEdit_Click(object sender, RoutedEventArgs e) { if (sender is FrameworkElement { Tag: int index }) _viewModel.StartEdit(index); } private async void SlotDelete_Click(object sender, RoutedEventArgs e) { if (sender is not FrameworkElement { Tag: int index } element) return; var slot = element.DataContext as SocialSlotViewModel; var confirm = index == 0 ? "Remove your YouTube channel from the bar and sign out of LlamaCasty?" : slot is { IsFilled: true } ? $"Remove {slot.Handle}?" : "Remove this social?"; if (MessageBox.Show(confirm, "Remove Social", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) await _viewModel.DeleteSlotAsync(index); } private void SocialEdit_KeyDown(object sender, KeyEventArgs e) { if (sender is not FrameworkElement { DataContext: SocialSlotViewModel slot }) return; if (e.Key == Key.Enter) { _viewModel.ConfirmEdit(slot.Index); } else if (e.Key == Key.Escape) { slot.IsEditing = false; slot.Error = null; } } private void SocialEdit_LostFocus(object sender, RoutedEventArgs e) { if (sender is FrameworkElement { DataContext: SocialSlotViewModel slot }) _viewModel.ConfirmEdit(slot.Index); } }