diff --git a/src/api/queries/chapters.ts b/src/api/queries/chapters.ts
index 4c22666..91a4920 100644
--- a/src/api/queries/chapters.ts
+++ b/src/api/queries/chapters.ts
@@ -2,6 +2,12 @@ export const GET_RECENTLY_UPDATED = `
query GetRecentlyUpdated {
chapters(orderBy: FETCHED_AT, orderByType: DESC, first: 300) {
nodes {
+ id
+ name
+ chapterNumber
+ sourceOrder
+ isRead
+ lastPageRead
mangaId
fetchedAt
manga { id title thumbnailUrl inLibrary }
@@ -19,4 +25,4 @@ export const GET_CHAPTERS = `
}
}
}
-`;
\ No newline at end of file
+`;
diff --git a/src/features/updates/components/Updates.svelte b/src/features/updates/components/Updates.svelte
new file mode 100644
index 0000000..636a290
--- /dev/null
+++ b/src/features/updates/components/Updates.svelte
@@ -0,0 +1,419 @@
+
+
+
+
+
+ {#if loading && updates.length === 0}
+
+
+
+
+
Loading updates…
+
+ {:else if error}
+
+
+
+
+
Couldn't load updates
+
{error}
+
+ {:else if updates.length === 0}
+
+
+
+
+
No recent library updates
+
Run a library update to populate this page.
+
+ {:else}
+
+ {#each groups as { label, items }}
+
+
+
+
+ {#each items as item (item.id)}
+
+ {/each}
+
+
+ {/each}
+
+ {/if}
+
+
+
diff --git a/src/shared/chrome/Layout.svelte b/src/shared/chrome/Layout.svelte
index 6c4ec74..19b7c39 100644
--- a/src/shared/chrome/Layout.svelte
+++ b/src/shared/chrome/Layout.svelte
@@ -10,6 +10,7 @@
import Downloads from "@features/downloads/components/Downloads.svelte";
import Extensions from "@features/extensions/components/Extensions.svelte";
import Tracking from "@features/tracking/components/Tracking.svelte";
+ import Updates from "@features/updates/components/Updates.svelte";
@@ -24,6 +25,8 @@
{:else if store.navPage === "library"}
+ {:else if store.navPage === "updates"}
+
{:else if store.navPage === "search"}
{:else if store.navPage === "history"}
@@ -45,4 +48,4 @@
.frame { display: flex; padding: 6px 15px 15px; width: 100%; height: 100%; box-sizing: border-box; overflow: hidden; }
.shell { display: flex; flex: 1; border-radius: 14px; overflow: hidden; border: 1px solid var(--border-dim); background: var(--bg-base); background-image: var(--bg-image); min-height: 0; min-width: 0; }
.main { flex: 1; overflow: hidden; background: var(--bg-surface); transform: translateZ(0); contain: layout style; min-width: 0; }
-
\ No newline at end of file
+
diff --git a/src/shared/chrome/Sidebar.svelte b/src/shared/chrome/Sidebar.svelte
index 0fc72d6..25060ae 100644
--- a/src/shared/chrome/Sidebar.svelte
+++ b/src/shared/chrome/Sidebar.svelte
@@ -1,11 +1,12 @@