44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using Avalonia.Controls;
|
|
using Avalonia.Interactivity;
|
|
using ClaudeDo.Ui.ViewModels.Islands;
|
|
using ClaudeDo.Ui.Views.Modals;
|
|
|
|
namespace ClaudeDo.Ui.Views.Islands;
|
|
|
|
public partial class DetailsIslandView : UserControl
|
|
{
|
|
public DetailsIslandView()
|
|
{
|
|
InitializeComponent();
|
|
DataContextChanged += OnDataContextChanged;
|
|
}
|
|
|
|
private void OnDataContextChanged(object? sender, EventArgs e)
|
|
{
|
|
if (DataContext is DetailsIslandViewModel vm)
|
|
{
|
|
vm.ShowDiffModal = async (diffVm) =>
|
|
{
|
|
var owner = TopLevel.GetTopLevel(this) as Window;
|
|
if (owner == null) return;
|
|
var modal = new DiffModalView { DataContext = diffVm };
|
|
await modal.ShowDialog(owner);
|
|
};
|
|
|
|
vm.ShowWorktreeModal = async (worktreeVm) =>
|
|
{
|
|
var owner = TopLevel.GetTopLevel(this) as Window;
|
|
if (owner == null) return;
|
|
var modal = new WorktreeModalView { DataContext = worktreeVm };
|
|
await modal.ShowDialog(owner);
|
|
};
|
|
}
|
|
}
|
|
|
|
private void NotesLostFocus(object? sender, RoutedEventArgs e)
|
|
{
|
|
if (DataContext is DetailsIslandViewModel vm)
|
|
vm.SaveNotesCommand.Execute(null);
|
|
}
|
|
}
|