59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
namespace Tesses.CMS.Avalonia.ViewModels.HomePages;
|
|
|
|
using System.Collections.ObjectModel;
|
|
using System.Threading.Tasks;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using CommunityToolkit.Mvvm.Messaging;
|
|
using Tesses.CMS.Client;
|
|
|
|
public class UserPageItem
|
|
{
|
|
public UserPageItem(string name,ViewModelBase vmb)
|
|
{
|
|
Name = name;
|
|
Item = vmb;
|
|
}
|
|
public string Name {get;set;}
|
|
|
|
public ViewModelBase Item {get;set;}
|
|
}
|
|
|
|
public partial class HomeUserPageViewModel : ViewModelBase, IBackable
|
|
{
|
|
HomePageViewModel homePage;
|
|
|
|
HomeUserListPageViewModel userList;
|
|
UserAccount account;
|
|
|
|
public string Username => account.Username;
|
|
|
|
public string ProperName => account.ProperName;
|
|
|
|
public UserAccount Account => account;
|
|
[ObservableProperty]
|
|
private ObservableCollection<UserPageItem> _userItems=new ObservableCollection<UserPageItem>();
|
|
|
|
public HomeUserPageViewModel(HomePageViewModel homePage,HomeUserListPageViewModel userList, UserAccount account)
|
|
{
|
|
this.homePage = homePage;
|
|
this.userList = userList;
|
|
this.account = account;
|
|
UserItems.Add(new UserPageItem("Movies",new HomeMovieListPageViewModel(homePage,this)));
|
|
UserItems.Add(new UserPageItem("Shows",new HomeShowListPageViewModel(homePage,this)));
|
|
}
|
|
[ObservableProperty]
|
|
private UserPageItem? _selectedListItem;
|
|
partial void OnSelectedListItemChanged(UserPageItem? value)
|
|
{
|
|
if (value is null) return;
|
|
SelectedListItem=null;
|
|
homePage.CurrentPage = value.Item;
|
|
}
|
|
|
|
public ViewModelBase Back()
|
|
{
|
|
return userList;
|
|
}
|
|
|
|
} |