diff --git a/frontend/src/lib/components/reader/chapter-sidebar.svelte b/frontend/src/lib/components/reader/chapter-sidebar.svelte
deleted file mode 100644
index 809c91b..0000000
--- a/frontend/src/lib/components/reader/chapter-sidebar.svelte
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- Chapters
-
-
- {#each chapters as chapter}
-
-
- {#snippet child({ props })}
- {chapter.label}
- {/snippet}
-
-
- {/each}
-
-
-
-
-
-
diff --git a/frontend/src/routes/(root)/(library)/book/[bookId]/read/+layout@.svelte b/frontend/src/routes/(root)/(library)/book/[bookId]/read/+layout@.svelte
index 01e30c7..914b4c5 100644
--- a/frontend/src/routes/(root)/(library)/book/[bookId]/read/+layout@.svelte
+++ b/frontend/src/routes/(root)/(library)/book/[bookId]/read/+layout@.svelte
@@ -1,7 +1,4 @@
diff --git a/frontend/src/routes/(root)/(library)/book/[bookId]/read/pdf/[fileId]/+page.svelte b/frontend/src/routes/(root)/(library)/book/[bookId]/read/pdf/[fileId]/+page.svelte
index c3c1b27..635dbc0 100644
--- a/frontend/src/routes/(root)/(library)/book/[bookId]/read/pdf/[fileId]/+page.svelte
+++ b/frontend/src/routes/(root)/(library)/book/[bookId]/read/pdf/[fileId]/+page.svelte
@@ -1,42 +1,99 @@
-
-
-
+
+ {data?.title ? `${data.title} — Chitai` : 'Reader — Chitai'}
+
-
+
+ {#if loadError}
+
+
+
+
This file wouldn't open
+
{loadError}
+
+
+
+ {:else if loading}
+
+
+ Opening…
+
+ {/if}
+
+
+
+
diff --git a/frontend/src/routes/(root)/(library)/book/[bookId]/read/pdf/[fileId]/+page.ts b/frontend/src/routes/(root)/(library)/book/[bookId]/read/pdf/[fileId]/+page.ts
new file mode 100644
index 0000000..055de42
--- /dev/null
+++ b/frontend/src/routes/(root)/(library)/book/[bookId]/read/pdf/[fileId]/+page.ts
@@ -0,0 +1,13 @@
+import { error } from '@sveltejs/kit';
+
+export async function load({ fetch, params }) {
+ const response = await fetch(`/api/books/${params.bookId}`);
+
+ if (!response.ok) {
+ error(response.status, 'This book could not be loaded.');
+ }
+
+ const book = await response.json();
+
+ return { title: book.title };
+}