1
0

34 lines
1007 B
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
{
public RoutingState Router { get; } = new RoutingState();
public ReactiveCommand<Unit, IRoutableViewModel> GoBackCommand => Router.NavigateBack;
[Reactive]
private string _title = String.Empty;
[ReactiveCommand]
private async ValueTask OpenRepoPageAsync()
{
if (Api.Current.RequireRefreshToken()) await Router.NavigateAndReset.Execute(new ServerSetupViewModel(this)).ToTask();
}
public ServerConnectViewModel()
{
Router.CurrentViewModel
.Select(vm => vm?.GetType().Name.Replace("ViewModel", string.Empty) ?? "Hello")
.BindTo(this, vm => vm.Title);
}
}