using System; using System.Threading.Tasks; using Avalonia.ReactiveUI; using Avalonia.Threading; using ReactiveUI; using VaultSmpInstaller.ViewModels; namespace VaultSmpInstaller.Views; public partial class ProfileWindow1 : ReactiveWindow { public ProfileWindow1() { InitializeComponent(); this.WhenActivated(d => d(ViewModel!.UseCurseforgeCommand.Subscribe(Close))); this.WhenActivated(d => d(ViewModel!.UsePrismCommand.Subscribe(Close))); this.WhenActivated(action => action(ViewModel!.ShowProfileSelectionDialog.RegisterHandler(DoShowDialogAsync))); this.WhenActivated(_ => { if (ViewModel!.IsOverwolfInstalled) { var removeOverwolfWindow = new RemoveOverwolfWindow(); removeOverwolfWindow.DataContext = new ThemeViewModel(); Dispatcher.UIThread.Invoke( () => { removeOverwolfWindow.ShowDialog(this); }); } }); } private async Task DoShowDialogAsync(InteractionContext interaction) { var dialog = new ProfileWindow2(); dialog.DataContext = interaction.Input; var result = await dialog.ShowDialog(this); interaction.SetOutput(result); } }