diff --git a/apps/readest-app/src/app/page.tsx b/apps/readest-app/src/app/page.tsx
index fba8c799..5f4943f4 100644
--- a/apps/readest-app/src/app/page.tsx
+++ b/apps/readest-app/src/app/page.tsx
@@ -25,7 +25,7 @@ const LibraryPage = () => {
setLibrary(await appService.loadLibraryBooks());
setLoading(false);
});
- }, [envConfig, libraryBooks, setLibrary]);
+ }, [envConfig, libraryBooks, setLibrary, getAppService]);
const importBooks = async (files: [string | File]) => {
setLoading(true);
diff --git a/apps/readest-app/src/app/reader/hooks/useFoliateEvents.ts b/apps/readest-app/src/app/reader/hooks/useFoliateEvents.ts
index c3f8c4f9..fef0330c 100644
--- a/apps/readest-app/src/app/reader/hooks/useFoliateEvents.ts
+++ b/apps/readest-app/src/app/reader/hooks/useFoliateEvents.ts
@@ -37,5 +37,5 @@ export const useFoliateEvents = (
view.removeEventListener('load', onLoad);
view.removeEventListener('relocate', onRelocate);
};
- }, [view, handlers]);
+ }, [view, onLoad, onRelocate, handlers]);
};
diff --git a/apps/readest-app/src/app/reader/page.tsx b/apps/readest-app/src/app/reader/page.tsx
index 84a38a88..a92989df 100644
--- a/apps/readest-app/src/app/reader/page.tsx
+++ b/apps/readest-app/src/app/reader/page.tsx
@@ -35,7 +35,7 @@ const ReaderPage = () => {
};
fetchLibrary();
- }, [setLibrary]);
+ }, [envConfig, setLibrary]);
return (
diff --git a/apps/readest-app/src/services/appService.ts b/apps/readest-app/src/services/appService.ts
index 5705bf6e..38ec77a8 100644
--- a/apps/readest-app/src/services/appService.ts
+++ b/apps/readest-app/src/services/appService.ts
@@ -189,6 +189,7 @@ export abstract class BaseAppService implements AppService {
}
async saveLibraryBooks(books: Book[]): Promise {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
const libraryBooks = books.map(({ coverImageUrl, ...rest }) => rest);
await this.fs.writeFile(getLibraryFilename(), 'Books', JSON.stringify(libraryBooks));
}
diff --git a/apps/readest-app/src/store/readerStore.ts b/apps/readest-app/src/store/readerStore.ts
index e1de99ed..62770188 100644
--- a/apps/readest-app/src/store/readerStore.ts
+++ b/apps/readest-app/src/store/readerStore.ts
@@ -1,6 +1,6 @@
import { create } from 'zustand';
-import { BookNote, BookContent, Book, BookConfig } from '@/types/book';
+import { BookNote, BookContent, Book, BookConfig, PageInfo } from '@/types/book';
import { AppService } from '@/types/system';
interface BookState {
@@ -18,7 +18,7 @@ interface ReaderStore {
setLibrary: (books: Book[]) => void;
fetchBook: (appService: AppService, id: string) => Promise;
- setProgress: (id: string, progress: number, location: string, pageinfo: {}) => void;
+ setProgress: (id: string, progress: number, location: string, pageinfo: PageInfo) => void;
addBookmark: (id: string, bookmark: BookNote) => void;
}
@@ -64,7 +64,7 @@ export const useReaderStore = create((set) => ({
}
},
- setProgress: (id: string, progress: number, location: string, pageinfo: {}) =>
+ setProgress: (id: string, progress: number, location: string, pageinfo: PageInfo) =>
set((state) => {
const book = state.books[id];
if (!book) return state;
diff --git a/apps/readest-app/src/types/book.ts b/apps/readest-app/src/types/book.ts
index 604a6a2d..c84a1a83 100644
--- a/apps/readest-app/src/types/book.ts
+++ b/apps/readest-app/src/types/book.ts
@@ -12,6 +12,12 @@ export interface Book {
coverImageUrl?: string | null;
}
+export interface PageInfo {
+ current: number;
+ next: number;
+ total: number;
+}
+
export interface BookNote {
cfi: string;
start: string;
@@ -27,7 +33,7 @@ export interface BookConfig {
lastUpdated: number;
progress?: number;
location?: string;
- pageinfo?: Record;
+ pageinfo?: PageInfo;
bookmarks?: BookNote[];
annotations?: BookNote[];
removedNotesTimestamps?: Record;
diff --git a/apps/readest-app/tsconfig.json b/apps/readest-app/tsconfig.json
index e5f380ea..47a21dc6 100644
--- a/apps/readest-app/tsconfig.json
+++ b/apps/readest-app/tsconfig.json
@@ -1,7 +1,11 @@
{
"extends": "@sindresorhus/tsconfig",
"compilerOptions": {
- "lib": ["dom", "dom.iterable", "esnext"],
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
@@ -19,9 +23,21 @@
}
],
"paths": {
- "@/*": ["./src/*"]
+ "@/*": [
+ "./src/*"
+ ],
+ "@pdfjs/*": [
+ "./public/vendor/pdfjs/*"
+ ]
}
},
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
- "exclude": ["node_modules"]
-}
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ ".next/types/**/*.ts"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
\ No newline at end of file
diff --git a/packages/foliate-js b/packages/foliate-js
index 2af74079..337988cf 160000
--- a/packages/foliate-js
+++ b/packages/foliate-js
@@ -1 +1 @@
-Subproject commit 2af74079c106c690c7f37eac81285f5e22368535
+Subproject commit 337988cffcee09377fcc0216bddad3baf4ec2514