|
@@ -20,9 +20,6 @@ namespace VeloeAvaloniaKemonoPartyApp.ViewModels
|
|
public event EventHandler? RequestClose;
|
|
public event EventHandler? RequestClose;
|
|
public bool? DialogResult => true;
|
|
public bool? DialogResult => true;
|
|
|
|
|
|
-
|
|
|
|
- private Creator _creator;
|
|
|
|
-
|
|
|
|
public ObservableCollection<PostViewModel> Posts { get; } = new();
|
|
public ObservableCollection<PostViewModel> Posts { get; } = new();
|
|
|
|
|
|
public CreatorPostsViewModel(IDialogService dialogService)
|
|
public CreatorPostsViewModel(IDialogService dialogService)
|
|
@@ -39,11 +36,17 @@ namespace VeloeAvaloniaKemonoPartyApp.ViewModels
|
|
get => _isBusy;
|
|
get => _isBusy;
|
|
set => this.RaiseAndSetIfChanged(ref _isBusy, value);
|
|
set => this.RaiseAndSetIfChanged(ref _isBusy, value);
|
|
}
|
|
}
|
|
-
|
|
|
|
- public Creator Creator { get => _creator; set {
|
|
|
|
|
|
+
|
|
|
|
+ private Creator _creator;
|
|
|
|
+ public Creator Creator
|
|
|
|
+ {
|
|
|
|
+ get => _creator;
|
|
|
|
+ set
|
|
|
|
+ {
|
|
_creator = value;
|
|
_creator = value;
|
|
InitPosts();
|
|
InitPosts();
|
|
- } }
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
private async void InitPosts()
|
|
private async void InitPosts()
|
|
{
|
|
{
|
|
@@ -60,7 +63,37 @@ namespace VeloeAvaloniaKemonoPartyApp.ViewModels
|
|
|
|
|
|
foreach (var post in posts)
|
|
foreach (var post in posts)
|
|
{
|
|
{
|
|
- var vm = new PostViewModel(post);
|
|
|
|
|
|
+ var vm = new PostViewModel(_dialogService,post);
|
|
|
|
+ Posts.Add(vm);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!cancellationToken.IsCancellationRequested)
|
|
|
|
+ {
|
|
|
|
+ LoadAvatars(cancellationToken);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ IsBusy = false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public async void LoadMorePosts()
|
|
|
|
+ {
|
|
|
|
+ if (IsBusy) return;
|
|
|
|
+
|
|
|
|
+ if (_cancellationTokenSource is null)
|
|
|
|
+ _cancellationTokenSource = new();
|
|
|
|
+
|
|
|
|
+ var cancellationToken = _cancellationTokenSource.Token;
|
|
|
|
+
|
|
|
|
+ IsBusy = true;
|
|
|
|
+
|
|
|
|
+ if (_creator is not null)
|
|
|
|
+ {
|
|
|
|
+ var posts = await Post.LoadPostsAsync(_creator,Posts.Count);
|
|
|
|
+
|
|
|
|
+ foreach (var post in posts)
|
|
|
|
+ {
|
|
|
|
+ var vm = new PostViewModel(_dialogService,post);
|
|
Posts.Add(vm);
|
|
Posts.Add(vm);
|
|
}
|
|
}
|
|
|
|
|