using System;
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Threading;
using LauncherGUI.ViewModels;
using Plombir;

namespace LauncherGUI.Views;

public partial class VersionSelectorWindow : Window
{
    private MainWindowViewModel _mainViewModel;
    public VersionSelectorWindow(MainWindowViewModel mainViewModel)
    {
        InitializeComponent();
        _mainViewModel = mainViewModel;

        //Load versions asynchronously
        var versionsList = Task.Run(() => Plombir.Utils.GetAllMcVersions().GetAwaiter().GetResult());

        versions.ItemsSource = versionsList.Result;

    }

    private async void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        var selectedVersion = versions.SelectedItem as string ?? throw new NullReferenceException("Null version selected!");

        _mainViewModel.SelectedVersion = selectedVersion;

        System.Console.WriteLine($"Selected version: {selectedVersion}");

        LauncherUtils.CreateMinecraftInstance(_mainViewModel, this);
        Close();


    }
}