summaryrefslogtreecommitdiff
path: root/Pages/Gallery.razor
diff options
context:
space:
mode:
Diffstat (limited to 'Pages/Gallery.razor')
-rw-r--r--Pages/Gallery.razor95
1 files changed, 52 insertions, 43 deletions
diff --git a/Pages/Gallery.razor b/Pages/Gallery.razor
index 743485e..2ff5486 100644
--- a/Pages/Gallery.razor
+++ b/Pages/Gallery.razor
@@ -1,15 +1,15 @@
@page "/"
@page "/Gallery"
-@inject ITagService tagService
-@inject IFeedService feedService
-@inject IUserService userService
@inject IJSRuntime jsRuntime
-@implements IDisposable
-@attribute [Authorize]
+@inject HBSession hb
+@*
+ * @implements IDisposable
+ * @attribute [Authorize]
+ *@
<PageTitle>@Title</PageTitle>
-@if(Ingest && !userService.UserSessionState.ShowNsfw) {
+@if(Ingest && !hb.HasNsfwClaim) {
<div id="feed-error">
<p><center>Ingest feed is not available unless NSFW mode is enabled!</center></p>
<p><center><i>You must enable NSFW mode to continue...</i></center></p>
@@ -21,12 +21,12 @@
</div>
} else {
<div style="padding:var(--size-default-gap);">
- @foreach(var media in displayMedia) {
+ @foreach(var mediaId in displayMedia) {
// Precalculate thumbnail size to help the browser
// lay out the images during initial page load
- int width = (int) media.CurrentUploadedFile!.Width! * 200 / (int) media.CurrentUploadedFile.Height!;
- <a href="/ViewMedia?m=@(media.Guid)">
- <img src="/media/thumb/@(media.Guid)?h=200" width=@width height="200"/>
+ @* int width = (int) media.CurrentUploadedFile!.Width! * 200 / (int) media.CurrentUploadedFile.Height!; *@
+ <a href="/ViewMedia?m=@mediaId">
+ <img src="/media/thumb/@mediaId?h=200" height="200"/>
</a>
}
<div id="canary" style="height:1px;"></div>
@@ -77,10 +77,10 @@
}
}
- private List<Media> displayMedia;
+ private List<Guid> displayMedia = new();
- protected override void OnInitialized() =>
- userService.UserSessionState.OnStateChange += ShowNsfwChanged;
+ // protected override void OnInitialized() =>
+ // userService.UserSessionState.OnStateChange += ShowNsfwChanged;
protected override void OnParametersSet() => LoadMedia(true);
@@ -93,7 +93,8 @@
[JSInvokable("LoadMedia")]
public void LoadMedia(bool initial = false) {
- Media? key = displayMedia?.Any() ?? false && !initial ? displayMedia.Last() : null;
+ Guid? key =
+ displayMedia?.Any() ?? false && !initial ? displayMedia.Last() : null;
if(initial)
displayMedia = new();
@@ -102,40 +103,48 @@
if(Enum.TryParse<ApiModels.SortOrder>(SortOrder, true, out var so))
sortOrder = so;
+ FeedRequest feedRequest = new FeedRequest() {
+ SelectIngest = Ingest,
+ IncludeNsfw = hb.HasNsfwClaim,
+ ContinuationToken = key,
+ Count = PageSize,
+ SortOrder = sortOrder ?? default
+ };
+
if(TagId is not null && Query is null) {
- displayMedia!.AddRange(feedService.LoadChunk(
- selectIngest: Ingest,
- includeNsfw: userService.UserSessionState.ShowNsfw,
- tagId: (Guid) TagId!,
- key: key,
- count: PageSize,
- sortOrder: sortOrder ?? default));
+ feedRequest = new FeedTagRequest() {
+ SelectIngest = Ingest,
+ IncludeNsfw = hb.HasNsfwClaim,
+ TagId = (Guid) TagId!,
+ ContinuationToken = key,
+ Count = PageSize,
+ SortOrder = sortOrder ?? default
+ };
} else if(Query is not null && TagId is null) {
- displayMedia!.AddRange(feedService.LoadChunk(
- selectIngest: Ingest,
- includeNsfw: userService.UserSessionState.ShowNsfw,
- query: string.IsNullOrWhiteSpace(Query) ? null : Query,
- key: key,
- count: PageSize,
- sortOrder: sortOrder ?? default));
- } else {
- displayMedia!.AddRange(feedService.LoadChunk(
- selectIngest: Ingest,
- includeNsfw: userService.UserSessionState.ShowNsfw,
- key: key,
- count: PageSize,
- sortOrder: sortOrder ?? default));
+ feedRequest = new FeedSearchRequest() {
+ SelectIngest = Ingest,
+ IncludeNsfw = hb.HasNsfwClaim,
+ Query = string.IsNullOrWhiteSpace(Query) ? null : Query,
+ ContinuationToken = key,
+ Count = PageSize,
+ SortOrder = sortOrder ?? default
+ };
}
- StateHasChanged();
+ hb.Feed
+ .LoadChunkAsync(feedRequest)
+ .ContinueWith(async m => {
+ displayMedia!.AddRange(await m);
+ await InvokeAsync(() => StateHasChanged());
+ });
}
- private async void ShowNsfwChanged(UserSessionState userSessionState) {
- await InvokeAsync(() => {
- LoadMedia(true);
- });
- }
+ // private async void ShowNsfwChanged(UserSessionState userSessionState) {
+ // await InvokeAsync(() => {
+ // LoadMedia(true);
+ // });
+ // }
- public void Dispose() =>
- userService.UserSessionState.OnStateChange -= ShowNsfwChanged;
+ // public void Dispose() =>
+ // userService.UserSessionState.OnStateChange -= ShowNsfwChanged;
}