using Avalonia; using Avalonia.Animation; using Avalonia.Animation.Easings; using Avalonia.Controls; using Avalonia.Media; using Avalonia.Styling; using ClaudeDo.Ui.ViewModels.Modals; namespace ClaudeDo.Ui.Views.Modals; public partial class DiffModalView : Window { public DiffModalView() { InitializeComponent(); } protected override void OnDataContextChanged(EventArgs e) { base.OnDataContextChanged(e); if (DataContext is DiffModalViewModel vm) vm.CloseAction = Close; } protected override async void OnOpened(EventArgs e) { base.OnOpened(e); Opacity = 0; RenderTransform = new ScaleTransform(0.98, 0.98); var anim = new Avalonia.Animation.Animation { Duration = TimeSpan.FromMilliseconds(180), Easing = new CubicEaseOut(), FillMode = FillMode.Forward, Children = { new KeyFrame { Cue = new Cue(0), Setters = { new Setter(OpacityProperty, 0d) } }, new KeyFrame { Cue = new Cue(1), Setters = { new Setter(OpacityProperty, 1d) } }, } }; await anim.RunAsync(this); Opacity = 1; RenderTransform = new ScaleTransform(1.0, 1.0); } }