using System.Threading.Tasks; using Avalonia; using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using ReactiveUI; namespace DesertPaintCodex.Util { public static class DialogUtil { public static async Task ShowDialog( InteractionContext interaction) where View : Window, new() { if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { View dialog = new() {DataContext = interaction.Input}; ReturnType result = await dialog.ShowDialog(desktop.MainWindow); interaction.SetOutput(result); } } } }