summaryrefslogtreecommitdiff
path: root/Pages
diff options
context:
space:
mode:
Diffstat (limited to 'Pages')
-rw-r--r--Pages/Component/Dropdown.razor4
-rw-r--r--Pages/Component/Dropdown.razor.css24
-rw-r--r--Pages/Gallery.razor16
3 files changed, 42 insertions, 2 deletions
diff --git a/Pages/Component/Dropdown.razor b/Pages/Component/Dropdown.razor
new file mode 100644
index 0000000..1679e2e
--- /dev/null
+++ b/Pages/Component/Dropdown.razor
@@ -0,0 +1,4 @@
+<div class="outer">
+ <div class="outer-label">Select an item</div>
+ <div class="outer-arrow">&#9660</div>
+</div>
diff --git a/Pages/Component/Dropdown.razor.css b/Pages/Component/Dropdown.razor.css
new file mode 100644
index 0000000..fe68151
--- /dev/null
+++ b/Pages/Component/Dropdown.razor.css
@@ -0,0 +1,24 @@
+div.outer {
+ align-items: center;
+ background: #333;
+ border-radius: 5px;
+ color: #fff;
+ display: flex;
+ flex-direction: row;
+ user-select: none;
+ vertical-align: middle;
+ width: fit-content;
+}
+
+div.outer:hover {
+ background: #444;
+}
+
+div.outer-label {
+ margin-right: auto;
+ padding: 5px 5px 5px 10px;
+}
+
+div.outer-arrow {
+ padding: 5px 10px 5px 5px;
+}
diff --git a/Pages/Gallery.razor b/Pages/Gallery.razor
index 1464c13..3ddca5d 100644
--- a/Pages/Gallery.razor
+++ b/Pages/Gallery.razor
@@ -21,6 +21,12 @@
</div>
} else {
<div style="padding:var(--size-default-gap);">
+ <select @onchange=@((e) => SortOrderChanged(e.Value))>
+ <option value=@(HyperBooru.SortOrder.ObjectId)>Internal ID</option>
+ <option value=@(HyperBooru.SortOrder.LastWriteTime)>Modification Time</option>
+ <option value=@(HyperBooru.SortOrder.Random)>Random</option>
+ </select>
+ <hr/>
@foreach(var media in displayMedia) {
// Precalculate thumbnail size to help the browser
// lay out the images during initial page load
@@ -109,7 +115,7 @@
tagId: (Guid) TagId!,
key: key,
count: PageSize,
- sortOrder: sortOrder ?? default));
+ sortOrder: sortOrder ?? default));
} else if(Query is not null && TagId is null) {
displayMedia!.AddRange(feedService.LoadChunk(
selectIngest: Ingest,
@@ -117,7 +123,7 @@
query: string.IsNullOrWhiteSpace(Query) ? null : Query,
key: key,
count: PageSize,
- sortOrder: sortOrder ?? default));
+ sortOrder: sortOrder ?? default));
} else {
displayMedia!.AddRange(feedService.LoadChunk(
selectIngest: Ingest,
@@ -136,6 +142,12 @@
});
}
+ private async void SortOrderChanged(SortOrder sortOrder) {
+ await InvokeAsync(() => {
+ LoadMedia(true);
+ });
+ }
+
public void Dispose() =>
userService.UserSessionState.OnStateChange -= ShowNsfwChanged;
}