1
0
2025-03-30 15:26:16 +08:00

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()
{
}
}