using Avalonia; using Avalonia.Controls; using Avalonia.Input; namespace SourceGit.Views { public partial class CommitBaseInfo : UserControl { public static readonly StyledProperty CanNavigateProperty = AvaloniaProperty.Register(nameof(CanNavigate), true); public bool CanNavigate { get => GetValue(CanNavigateProperty); set => SetValue(CanNavigateProperty, value); } public static readonly StyledProperty MessageProperty = AvaloniaProperty.Register(nameof(Message), string.Empty); public string Message { get => GetValue(MessageProperty); set => SetValue(MessageProperty, value); } public CommitBaseInfo() { InitializeComponent(); } private void OnParentSHAPressed(object sender, PointerPressedEventArgs e) { if (sender is Control { DataContext: string sha } && DataContext is ViewModels.CommitDetail detail && CanNavigate) { detail.NavigateTo(sha); } e.Handled = true; } } }