diff --git a/apps/readest-app/src/app/library/components/Bookshelf.tsx b/apps/readest-app/src/app/library/components/Bookshelf.tsx index bb745e79..ce221844 100644 --- a/apps/readest-app/src/app/library/components/Bookshelf.tsx +++ b/apps/readest-app/src/app/library/components/Bookshelf.tsx @@ -143,7 +143,7 @@ const Bookshelf: React.FC = ({
{currentBookshelfItems.map((item, index) => ( diff --git a/apps/readest-app/src/app/reader/components/Reader.tsx b/apps/readest-app/src/app/reader/components/Reader.tsx index 0527a90c..a80194eb 100644 --- a/apps/readest-app/src/app/reader/components/Reader.tsx +++ b/apps/readest-app/src/app/reader/components/Reader.tsx @@ -16,7 +16,7 @@ import ReaderContent from './ReaderContent'; const Reader: React.FC<{ ids?: string }> = ({ ids }) => { const { envConfig, appService } = useEnv(); const { settings, setSettings } = useSettingsStore(); - const { library, setLibrary } = useLibraryStore(); + const { getVisibleLibrary, setLibrary } = useLibraryStore(); const isInitiating = useRef(false); const { updateAppTheme } = useTheme(); @@ -38,7 +38,7 @@ const Reader: React.FC<{ ids?: string }> = ({ ids }) => { }, []); return ( - library.length > 0 && + getVisibleLibrary().length > 0 && settings.globalReadSettings && (
= ({ menuClassName, setIsDropdownOpen }) => { const _ = useTranslation(); - const { library } = useLibraryStore(); + const { getVisibleLibrary } = useLibraryStore(); const { openParallelView } = useBooksManager(); const handleParallelView = (id: string) => { openParallelView(id); @@ -48,26 +48,28 @@ const BookMenu: React.FC = ({ menuClassName, setIsDropdownOpen }) >
    - {library.slice(0, 20).map((book) => ( - { - (e.target as HTMLImageElement).style.display = 'none'; - }} - /> - } - label={book.title} - labelClass='max-w-36' - onClick={() => handleParallelView(book.hash)} - /> - ))} + {getVisibleLibrary() + .slice(0, 20) + .map((book) => ( + { + (e.target as HTMLImageElement).style.display = 'none'; + }} + /> + } + label={book.title} + labelClass='max-w-36' + onClick={() => handleParallelView(book.hash)} + /> + ))}
diff --git a/apps/readest-app/src/store/libraryStore.ts b/apps/readest-app/src/store/libraryStore.ts index bdf2b3f3..02756ff4 100644 --- a/apps/readest-app/src/store/libraryStore.ts +++ b/apps/readest-app/src/store/libraryStore.ts @@ -3,8 +3,9 @@ import { Book } from '@/types/book'; import { EnvConfigType } from '@/services/environment'; interface LibraryState { - library: Book[]; + library: Book[]; // might contain deleted books checkOpenWithBooks: boolean; + getVisibleLibrary: () => Book[]; setCheckOpenWithBooks: (check: boolean) => void; setLibrary: (books: Book[]) => void; updateBook: (envConfig: EnvConfigType, book: Book) => void; @@ -13,6 +14,7 @@ interface LibraryState { export const useLibraryStore = create((set, get) => ({ library: [], checkOpenWithBooks: true, + getVisibleLibrary: () => get().library.filter((book) => !book.deletedAt), setCheckOpenWithBooks: (check) => set({ checkOpenWithBooks: check }), setLibrary: (books) => set({ library: books }), updateBook: async (envConfig: EnvConfigType, book: Book) => {