58 lines
1.5 KiB
C#
58 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.ObjectModel;
|
|
using System.Reactive;
|
|
using System.Reactive.Linq;
|
|
using System.Threading.Tasks;
|
|
using Avalonia.ReactiveUI;
|
|
using Flawless.Client.Models;
|
|
using Flawless.Client.Service;
|
|
using Flawless.Communication.Response;
|
|
using Flawless.Communication.Shared;
|
|
using ReactiveUI;
|
|
using ReactiveUI.SourceGenerators;
|
|
|
|
namespace Flawless.Client.ViewModels;
|
|
|
|
public partial class HomeViewModel : ViewModelBase, IRoutableViewModel
|
|
{
|
|
public string? UrlPathSegment { get; } = Guid.NewGuid().ToString();
|
|
|
|
public IScreen HostScreen { get; }
|
|
|
|
public ObservableCollection<RepositoryHomePageModel> Repositories { get; } = new(new[]
|
|
{
|
|
new RepositoryHomePageModel(
|
|
"cardidi", "test1", "Abc", false, true, ""),
|
|
});
|
|
|
|
[Reactive] private RepositoryHomePageModel? _selectedRepository;
|
|
|
|
[Reactive] private string _serverFriendlyName;
|
|
|
|
public HomeViewModel(IScreen hostScreen)
|
|
{
|
|
HostScreen = hostScreen;
|
|
Api.Current.ServerUrl.SubscribeOn(AvaloniaScheduler.Instance)
|
|
.Subscribe(v => ServerFriendlyName = v ?? "Unknown Server");
|
|
}
|
|
|
|
[ReactiveCommand]
|
|
private async Task RefreshRepositoriesAsync()
|
|
{
|
|
}
|
|
|
|
[ReactiveCommand]
|
|
private async Task CreateRepositoryAsync()
|
|
{
|
|
}
|
|
|
|
[ReactiveCommand]
|
|
private async Task OpenRepositoryAsync()
|
|
{
|
|
}
|
|
|
|
[ReactiveCommand]
|
|
private async Task DeleteRepositoryAsync()
|
|
{
|
|
}
|
|
} |