Files @ e4628e1c4408
Branch filter:

Location: ATITD-Tools/Desert-Paint-Codex/Util/DialogUtil.cs

Jason Maltzen
Update to .NET 7
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<View, ViewModel, ReturnType>(
            InteractionContext<ViewModel, ReturnType> interaction) where View : Window, new()
        {
            if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
            {
                View       dialog = new() {DataContext = interaction.Input};
                ReturnType result = await dialog.ShowDialog<ReturnType>(desktop.MainWindow);
                interaction.SetOutput(result);
            }
        }
    }
}