diff --git a/web/app/src/lib/components/ui/ShiorikoImage.svelte b/web/app/src/lib/components/ui/ShiorikoImage.svelte
index 12f0419..4eab0cc 100644
--- a/web/app/src/lib/components/ui/ShiorikoImage.svelte
+++ b/web/app/src/lib/components/ui/ShiorikoImage.svelte
@@ -3,6 +3,7 @@
let { alt, src } = $props();
let loading = $state(false);
+ let failed = $state(false);
onMount(() => {
const img = new Image();
@@ -11,13 +12,22 @@
img.onload = () => {
loading = false;
+ failed = false;
};
img.onerror = () => {
loading = true;
+ failed = true;
};
})
+{#if !failed}
+
+{:else}
+
+ There was an error loading this image.
+
+{/if}
diff --git a/web/app/src/lib/components/ui/TagLinkNumbered.svelte b/web/app/src/lib/components/ui/TagLinkNumbered.svelte
index db80d70..a3e8a65 100644
--- a/web/app/src/lib/components/ui/TagLinkNumbered.svelte
+++ b/web/app/src/lib/components/ui/TagLinkNumbered.svelte
@@ -9,7 +9,9 @@
- {tagDisplay}
+
+ {tagDisplay}
+
{num}
diff --git a/web/app/src/routes/post/[id]/+page.svelte b/web/app/src/routes/post/[id]/+page.svelte
index b885ec7..4a580fd 100644
--- a/web/app/src/routes/post/[id]/+page.svelte
+++ b/web/app/src/routes/post/[id]/+page.svelte
@@ -15,6 +15,7 @@
post = data;
imagePercentage = ((1000 * 100) / post.width).toFixed(0) + "%";
};
+ let loading = $state(false);
let isOriginal = $state(false);
const trimUrl = (str: string) => {
@@ -53,11 +54,11 @@
let imagePercentage = $state("0%");
-{#if post}
-
-
-
-
+
+
+
+
+ {#if post}
{#if editMenuShown == false && deleteMenuShown == false}
{/if}
-
-
+ {:else}
+
+
+
+ {/if}
+
+
+ {#if post}
{#if post.width > 1000 && isOriginal == false}
Resized to {imagePercentage} of the original image.
@@ -101,15 +108,19 @@
{:else}
-
- Currently viewing original image.
-
+
+ Currently viewing original image.
+
{/if}
-
+ {:else}
+
+
+
+ {/if}
-
-
-{/if}
+
+
+
\ No newline at end of file
diff --git a/web/app/src/routes/posts/+page.svelte b/web/app/src/routes/posts/+page.svelte
index cf9a695..a64b0c6 100644
--- a/web/app/src/routes/posts/+page.svelte
+++ b/web/app/src/routes/posts/+page.svelte
@@ -23,6 +23,7 @@
let tags = $state([]);
let tagInfo = $state(null);
let categorizedTags = {};
+ let loading = $state(false);
const getData = async () => {
const data = await getPosts({ page, q: searchTerms.join("+") });
@@ -49,6 +50,7 @@
if (searchTerms.filter((x) => !x.startsWith("-")).length == 1) {
tagInfo = await getTag({ tag: searchTerms[0] });
}
+ loading = false;
};
let tagQuery = $state();
@@ -62,6 +64,7 @@
};
afterNavigate(() => {
+ loading = true;
tagQuery = url.searchParams.get("tags");
if (tagQuery) {
searchTerms = tagQuery.split(" ");
@@ -99,7 +102,7 @@
-
Tags
+
Menu
{#if tagInfo}
@@ -169,55 +181,64 @@
diff --git a/web/app/src/routes/tags/+page.svelte b/web/app/src/routes/tags/+page.svelte
index 0be2538..6cf44fe 100644
--- a/web/app/src/routes/tags/+page.svelte
+++ b/web/app/src/routes/tags/+page.svelte
@@ -6,13 +6,16 @@
import TagTypeIndicator from '$lib/components/ui/TagTypeIndicator.svelte';
let tags = $state([]);
+ let loading = $state(false);
const getData = async () => {
const data = await getTags();
tags = data;
+ loading = false;
};
afterNavigate(() => {
+ loading = true;
getData();
})
@@ -21,6 +24,7 @@
Tag List
+ {#if !loading}
@@ -41,5 +45,8 @@
{/each}
+ {:else}
+
+ {/if}
\ No newline at end of file
diff --git a/web/app/src/routes/tags/[tag]/+page.svelte b/web/app/src/routes/tags/[tag]/+page.svelte
index 8a91a46..3dffdab 100644
--- a/web/app/src/routes/tags/[tag]/+page.svelte
+++ b/web/app/src/routes/tags/[tag]/+page.svelte
@@ -8,7 +8,6 @@
import EditTagPanel from "$lib/components/panels/EditTagPanel.svelte";
import PostGallery from "$lib/components/ui/PostGallery.svelte";
-
import { page } from "$app/stores";
let { tag } = $state($page.params);
@@ -51,9 +50,9 @@
- {#if data}
-
-
+
+
+ {#if data}
{#if renameMenuShown}
{/if}
-
-
+
+ {#if data}
{#if editMenuShown}
Posts
-
+ {:else}
+
+ {/if}
- {/if}
+