Files
NebulaLauncher/Nebula.Launcher/ViewModels/Popup/AddFavoriteViewModel.cs

53 lines
1.5 KiB
C#
Raw Normal View History

2025-01-29 12:32:42 +03:00
using System;
using CommunityToolkit.Mvvm.ComponentModel;
2025-06-15 17:13:31 +03:00
using Nebula.Launcher.ServerListProviders;
2025-01-29 12:32:42 +03:00
using Nebula.Launcher.ViewModels.Pages;
using Nebula.Launcher.Views.Pages;
using Nebula.Shared.Services;
using Nebula.Shared.Services.Logging;
2025-01-29 12:32:42 +03:00
using Nebula.Shared.Utils;
using AddFavoriteView = Nebula.Launcher.Views.Popup.AddFavoriteView;
namespace Nebula.Launcher.ViewModels.Popup;
[ViewModelRegister(typeof(AddFavoriteView), false)]
[ConstructGenerator]
public partial class AddFavoriteViewModel : PopupViewModelBase
{
private ILogger _logger;
2025-01-29 12:32:42 +03:00
protected override void InitialiseInDesignMode()
{
}
protected override void Initialise()
{
_logger = DebugService.GetLogger(this);
2025-01-29 12:32:42 +03:00
}
[GenerateProperty]
public override PopupMessageService PopupMessageService { get; }
[GenerateProperty] private ServerOverviewModel ServerOverviewModel { get; }
2025-01-29 12:32:42 +03:00
[GenerateProperty] private DebugService DebugService { get; }
2025-06-15 17:13:31 +03:00
[GenerateProperty] private FavoriteServerListProvider FavoriteServerListProvider { get; }
2025-01-29 12:32:42 +03:00
public override string Title => "Add to favorite";
public override bool IsClosable => true;
[ObservableProperty] private string _ipInput;
[ObservableProperty] private string _error = "";
public void OnEnter()
{
try
{
var uri = IpInput.ToRobustUrl();
2025-06-15 17:13:31 +03:00
FavoriteServerListProvider.AddFavorite(uri);
2025-01-29 12:32:42 +03:00
Dispose();
}
catch (Exception e)
{
Error = e.Message;
_logger.Error(e);
2025-01-29 12:32:42 +03:00
}
}
}