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-06-23 16:39:30 +03:00
|
|
|
using Nebula.Launcher.Services;
|
2025-01-29 12:32:42 +03:00
|
|
|
using Nebula.Launcher.ViewModels.Pages;
|
|
|
|
|
using Nebula.Launcher.Views.Pages;
|
|
|
|
|
using Nebula.Shared.Services;
|
2025-05-05 20:43:28 +03:00
|
|
|
using Nebula.Shared.Services.Logging;
|
2025-01-29 12:32:42 +03:00
|
|
|
using Nebula.Shared.Utils;
|
2025-07-02 21:32:51 +03:00
|
|
|
using Nebula.Shared.ViewHelper;
|
2025-01-29 12:32:42 +03:00
|
|
|
using AddFavoriteView = Nebula.Launcher.Views.Popup.AddFavoriteView;
|
|
|
|
|
|
|
|
|
|
namespace Nebula.Launcher.ViewModels.Popup;
|
|
|
|
|
|
|
|
|
|
[ViewModelRegister(typeof(AddFavoriteView), false)]
|
|
|
|
|
[ConstructGenerator]
|
|
|
|
|
public partial class AddFavoriteViewModel : PopupViewModelBase
|
|
|
|
|
{
|
2025-05-05 20:43:28 +03:00
|
|
|
private ILogger _logger;
|
|
|
|
|
|
2025-01-29 12:32:42 +03:00
|
|
|
protected override void InitialiseInDesignMode()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void Initialise()
|
|
|
|
|
{
|
2025-05-05 20:43:28 +03:00
|
|
|
_logger = DebugService.GetLogger(this);
|
2025-01-29 12:32:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[GenerateProperty]
|
|
|
|
|
public override PopupMessageService PopupMessageService { get; }
|
2025-06-14 22:33:03 +03:00
|
|
|
[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-06-23 16:39:30 +03:00
|
|
|
public override string Title => LocalisationService.GetString("popup-add-favorite");
|
2025-01-29 12:32:42 +03:00
|
|
|
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;
|
2025-05-05 20:43:28 +03:00
|
|
|
_logger.Error(e);
|
2025-01-29 12:32:42 +03:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|