From 404a8a92829aa3c84553c05ad068f6bc86b1a132 Mon Sep 17 00:00:00 2001 From: chrox Date: Mon, 14 Oct 2024 15:59:33 +0200 Subject: [PATCH] Import pdf-js from our public vendor and fix build --- apps/readest-app/src/app/page.tsx | 2 +- .../src/app/reader/hooks/useFoliateEvents.ts | 2 +- apps/readest-app/src/app/reader/page.tsx | 2 +- apps/readest-app/src/services/appService.ts | 1 + apps/readest-app/src/store/readerStore.ts | 6 ++--- apps/readest-app/src/types/book.ts | 8 +++++- apps/readest-app/tsconfig.json | 26 +++++++++++++++---- packages/foliate-js | 2 +- 8 files changed, 36 insertions(+), 13 deletions(-) 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