diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-08-21 00:37:58 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-08-21 00:53:54 +1000 |
| commit | 5e00ed783c68746567f40bb56c7cf69f4224b711 (patch) | |
| tree | 896418bea1497e80ee982248e5e2b28a2a491d02 /Pages/Gallery.razor | |
| parent | d32b0c57602a6de05f736e007aee9abbe450385d (diff) | |
Initial committhumbsize
Diffstat (limited to 'Pages/Gallery.razor')
| -rw-r--r-- | Pages/Gallery.razor | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/Pages/Gallery.razor b/Pages/Gallery.razor index 043f92d..deabd98 100644 --- a/Pages/Gallery.razor +++ b/Pages/Gallery.razor @@ -20,13 +20,34 @@ <p><center>a tag ID have been specified!</center></p> </div> } else { - <div style="padding:var(--size-default-gap);"> + <div style="margin:0 auto 0 auto;padding:var(--size-default-gap);"> + <ButtonContainer> + <Button + OnClick=@(async () => await SetViewSize(GalleryViewSize.Small)) + IconUrl="/images/grid-small.svg"/> + <Button + OnClick=@(async () => await SetViewSize(GalleryViewSize.Medium)) + IconUrl="/images/grid-medium.svg"/> + <Button + OnClick=@(async () => await SetViewSize(GalleryViewSize.Large)) + IconUrl="/images/grid-large.svg"/> + </ButtonContainer> @foreach(var media 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"/> + @switch(viewSize) { + case GalleryViewSize.Small: + <img src="/media/thumb/@(media.Guid)?w=100&h=100" width="100" height="100"/> + break; + case GalleryViewSize.Medium: + <img src="/media/thumb/@(media.Guid)?w=200&h=200" width="200" height="200"/> + break; + case GalleryViewSize.Large: + <img src="/media/thumb/@(media.Guid)?h=200" width=@width height="200"/> + break; + } </a> } <div id="canary" style="height:1px;"></div> @@ -77,6 +98,8 @@ } } + private GalleryViewSize viewSize = GalleryViewSize.Large; + private List<Media> displayMedia; protected override void OnInitialized() => @@ -136,6 +159,17 @@ }); } + private async Task SetViewSize(GalleryViewSize viewSize) { + this.viewSize = viewSize; + await InvokeAsync(() => StateHasChanged()); + } + public void Dispose() => userService.UserSessionState.OnStateChange -= ShowNsfwChanged; + + public enum GalleryViewSize { + Small, + Medium, + Large + } } |
