diff --git a/backend/Cargo.lock b/backend/Cargo.lock
index 55c05b4..e7b0b35 100644
--- a/backend/Cargo.lock
+++ b/backend/Cargo.lock
@@ -1558,7 +1558,7 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
[[package]]
name = "mangalord"
-version = "0.115.1"
+version = "0.115.2"
dependencies = [
"anyhow",
"argon2",
diff --git a/backend/Cargo.toml b/backend/Cargo.toml
index f065cd7..15bb0c6 100644
--- a/backend/Cargo.toml
+++ b/backend/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "mangalord"
-version = "0.115.1"
+version = "0.115.2"
edition = "2021"
default-run = "mangalord"
diff --git a/frontend/package.json b/frontend/package.json
index 24385fd..916882a 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,6 +1,6 @@
{
"name": "mangalord-frontend",
- "version": "0.115.1",
+ "version": "0.115.2",
"private": true,
"type": "module",
"scripts": {
diff --git a/frontend/src/lib/components/BookmarkList.svelte b/frontend/src/lib/components/BookmarkList.svelte
index cfa9feb..02f4cf5 100644
--- a/frontend/src/lib/components/BookmarkList.svelte
+++ b/frontend/src/lib/components/BookmarkList.svelte
@@ -23,6 +23,7 @@
alt=""
class="cover"
loading="lazy"
+ decoding="async"
/>
{:else}
diff --git a/frontend/src/lib/components/CollectionsGrid.svelte b/frontend/src/lib/components/CollectionsGrid.svelte
index 149faa2..994aaee 100644
--- a/frontend/src/lib/components/CollectionsGrid.svelte
+++ b/frontend/src/lib/components/CollectionsGrid.svelte
@@ -26,6 +26,7 @@
alt=""
class="collage-cover"
loading="lazy"
+ decoding="async"
/>
{/each}
{/if}
diff --git a/frontend/src/lib/components/ContinueReadingShelf.svelte b/frontend/src/lib/components/ContinueReadingShelf.svelte
index a834f14..8fb137f 100644
--- a/frontend/src/lib/components/ContinueReadingShelf.svelte
+++ b/frontend/src/lib/components/ContinueReadingShelf.svelte
@@ -51,6 +51,7 @@
alt=""
class="cover"
loading="lazy"
+ decoding="async"
/>
{:else}
diff --git a/frontend/src/lib/components/HistoryList.svelte b/frontend/src/lib/components/HistoryList.svelte
index 676ec46..af5481d 100644
--- a/frontend/src/lib/components/HistoryList.svelte
+++ b/frontend/src/lib/components/HistoryList.svelte
@@ -89,6 +89,7 @@
alt=""
class="cover"
loading="lazy"
+ decoding="async"
/>
{:else}
diff --git a/frontend/src/lib/components/HistoryList.svelte.test.ts b/frontend/src/lib/components/HistoryList.svelte.test.ts
index 3bed83a..3c67646 100644
--- a/frontend/src/lib/components/HistoryList.svelte.test.ts
+++ b/frontend/src/lib/components/HistoryList.svelte.test.ts
@@ -29,6 +29,16 @@ describe('HistoryList', () => {
expect(cont.getAttribute('href')).toBe('/manga/m1/chapter/c9');
});
+ it('renders covers with lazy loading and async decode', () => {
+ render(HistoryList, {
+ props: { entries: [entry({ manga_cover_image_path: 'mangas/m1/cover.jpg' })] }
+ });
+ const img = document.querySelector('img.cover') as HTMLImageElement;
+ expect(img).not.toBeNull();
+ expect(img.getAttribute('loading')).toBe('lazy');
+ expect(img.getAttribute('decoding')).toBe('async');
+ });
+
it('appends the page number to the continue line only past page 1', () => {
// The page suffix is a separate text node from "Continue Chapter N",
// so assert against the link's normalized text rather than getByText.
diff --git a/frontend/src/lib/components/TaggedChapterRow.svelte b/frontend/src/lib/components/TaggedChapterRow.svelte
index 21f99c1..ff4d1c6 100644
--- a/frontend/src/lib/components/TaggedChapterRow.svelte
+++ b/frontend/src/lib/components/TaggedChapterRow.svelte
@@ -27,7 +27,7 @@
{#if primaryCover}
-
+
{:else}
{/if}
@@ -46,7 +46,7 @@
{#if item.sample_storage_keys.length > 1}
{#each item.sample_storage_keys.slice(1) as key (key)}
-
})
+
})
{/each}
{/if}
diff --git a/frontend/src/lib/components/TaggedMangaRow.svelte b/frontend/src/lib/components/TaggedMangaRow.svelte
index fb44c16..fe86e5d 100644
--- a/frontend/src/lib/components/TaggedMangaRow.svelte
+++ b/frontend/src/lib/components/TaggedMangaRow.svelte
@@ -36,7 +36,7 @@
{#if primaryCover}
-
+
{:else}
{/if}
@@ -50,7 +50,7 @@
{#if sampleStrip.length > 0}
{#each sampleStrip as key (key)}
-
})
+
})
{/each}
{/if}
diff --git a/frontend/src/lib/components/TaggedPageRow.svelte b/frontend/src/lib/components/TaggedPageRow.svelte
index 01c0281..0add940 100644
--- a/frontend/src/lib/components/TaggedPageRow.svelte
+++ b/frontend/src/lib/components/TaggedPageRow.svelte
@@ -35,6 +35,7 @@
alt=""
class="cover"
loading="lazy"
+ decoding="async"
/>