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); } }