39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using System;
|
|
using System.Reactive;
|
|
using System.Reactive.Linq;
|
|
using System.Reactive.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
using Flawless.Client.Service;
|
|
using ReactiveUI;
|
|
using ReactiveUI.SourceGenerators;
|
|
using Ursa.ReactiveUIExtension;
|
|
|
|
namespace Flawless.Client.ViewModels;
|
|
|
|
public partial class ServerConnectViewModel : ViewModelBase, IScreen, IRoutableViewModel
|
|
{
|
|
public string? UrlPathSegment { get; } = Guid.NewGuid().ToString();
|
|
|
|
public IScreen HostScreen { get; }
|
|
|
|
public RoutingState Router { get; } = new();
|
|
|
|
public ReactiveCommand<Unit, IRoutableViewModel> GoBackCommand => Router.NavigateBack;
|
|
|
|
[Reactive]
|
|
private string _title = String.Empty;
|
|
|
|
[ReactiveCommand]
|
|
private async ValueTask OpenRepoPageAsync()
|
|
{
|
|
if (Api.C.RequireRefreshToken()) await Router.NavigateAndReset.Execute(new ServerSetupPageViewModel(this)).ToTask();
|
|
}
|
|
|
|
public ServerConnectViewModel(IScreen hostScreen)
|
|
{
|
|
HostScreen = hostScreen;
|
|
Router.CurrentViewModel
|
|
.Select(vm => vm?.GetType().Name.Replace("ViewModel", string.Empty) ?? "Hello")
|
|
.BindTo(this, vm => vm.Title);
|
|
}
|
|
} |