diff --git a/apps/readest-app/src/app/library/components/Bookshelf.tsx b/apps/readest-app/src/app/library/components/Bookshelf.tsx index 9ef08523..26067467 100644 --- a/apps/readest-app/src/app/library/components/Bookshelf.tsx +++ b/apps/readest-app/src/app/library/components/Bookshelf.tsx @@ -18,7 +18,6 @@ import { FILE_REVEAL_LABELS, FILE_REVEAL_PLATFORMS } from '@/utils/os'; import Alert from '@/components/Alert'; import Spinner from '@/components/Spinner'; -import BookDetailModal from '@/components/BookDetailModal'; import BookItem from './BookItem'; import GroupItem from './GroupItem'; @@ -56,6 +55,7 @@ interface BookshelfProps { handleBookUpload: (book: Book) => void; handleBookDownload: (book: Book) => void; handleBookDelete: (book: Book) => void; + handleShowDetailsBook: (book: Book) => void; booksTransferProgress: { [key: string]: number | null }; } @@ -66,6 +66,7 @@ const Bookshelf: React.FC = ({ handleBookUpload, handleBookDownload, handleBookDelete, + handleShowDetailsBook, booksTransferProgress, }) => { const _ = useTranslation(); @@ -80,7 +81,6 @@ const Bookshelf: React.FC = ({ const [clickedImage, setClickedImage] = useState(null); const [importBookUrl] = useState(searchParams?.get('url') || ''); const isImportingBook = useRef(false); - const [showDetailsBook, setShowDetailsBook] = useState(null); const makeBookAvailable = async (book: Book) => { if (book.uploadedAt && !book.downloadedAt) { @@ -98,14 +98,10 @@ const Bookshelf: React.FC = ({ const showBookDetailsModal = async (book: Book) => { if (await makeBookAvailable(book)) { - setShowDetailsBook(book); + handleShowDetailsBook(book); } }; - const dismissBookDetailsModal = () => { - setShowDetailsBook(null); - }; - const { setLibrary } = useLibraryStore(); useEffect(() => { @@ -287,13 +283,6 @@ const Bookshelf: React.FC = ({ onClickConfirm={confirmDelete} /> )} - {showDetailsBook && ( - - )} ); }; diff --git a/apps/readest-app/src/app/library/page.tsx b/apps/readest-app/src/app/library/page.tsx index 7267ccf9..b3ab93b2 100644 --- a/apps/readest-app/src/app/library/page.tsx +++ b/apps/readest-app/src/app/library/page.tsx @@ -10,6 +10,8 @@ import { AppService } from '@/types/system'; import { navigateToLogin, navigateToReader } from '@/utils/nav'; import { getBaseFilename, listFormater } from '@/utils/book'; import { eventDispatcher } from '@/utils/event'; +import { ProgressPayload } from '@/utils/transfer'; +import { throttle } from '@/utils/throttle'; import { parseOpenWithFiles } from '@/helpers/cli'; import { isTauriAppPlatform, hasUpdater } from '@/services/environment'; import { checkForAppUpdates } from '@/helpers/updater'; @@ -30,8 +32,7 @@ import { Toast } from '@/components/Toast'; import Spinner from '@/components/Spinner'; import LibraryHeader from './components/LibraryHeader'; import Bookshelf from './components/Bookshelf'; -import { ProgressPayload } from '@/utils/transfer'; -import { throttle } from '@/utils/throttle'; +import BookDetailModal from '@/components/BookDetailModal'; const LibraryPage = () => { const router = useRouter(); @@ -51,6 +52,7 @@ const LibraryPage = () => { const isInitiating = useRef(false); const [libraryLoaded, setLibraryLoaded] = useState(false); const [isSelectMode, setIsSelectMode] = useState(false); + const [showDetailsBook, setShowDetailsBook] = useState(null); const [booksTransferProgress, setBooksTransferProgress] = useState<{ [key: string]: number | null; }>({}); @@ -335,6 +337,10 @@ const LibraryPage = () => { setIsSelectMode(!isSelectMode); }; + const handleShowDetailsBook = (book: Book) => { + setShowDetailsBook(book); + }; + if (!appService) { return null; } @@ -386,6 +392,7 @@ const LibraryPage = () => { handleBookUpload={handleBookUpload} handleBookDownload={handleBookDownload} handleBookDelete={handleBookDelete} + handleShowDetailsBook={handleShowDetailsBook} booksTransferProgress={booksTransferProgress} /> @@ -407,6 +414,13 @@ const LibraryPage = () => { ))} + {showDetailsBook && ( + setShowDetailsBook(null)} + /> + )} diff --git a/apps/readest-app/src/components/BookDetailModal.tsx b/apps/readest-app/src/components/BookDetailModal.tsx index 12926dda..a7a12c10 100644 --- a/apps/readest-app/src/components/BookDetailModal.tsx +++ b/apps/readest-app/src/components/BookDetailModal.tsx @@ -74,7 +74,7 @@ const BookDetailModal = ({ book, isOpen, onClose }: BookDetailModalProps) => { ); return ( - <> +
{ boxClassName='sm:min-w-[480px]' contentClassName='!px-6 !py-2' > -
+
@@ -202,7 +202,7 @@ const BookDetailModal = ({ book, isOpen, onClose }: BookDetailModalProps) => { onClickConfirm={confirmDelete} /> )} - +
); }; diff --git a/apps/readest-app/src/styles/globals.css b/apps/readest-app/src/styles/globals.css index 83c67027..edf3f5bd 100644 --- a/apps/readest-app/src/styles/globals.css +++ b/apps/readest-app/src/styles/globals.css @@ -212,7 +212,7 @@ foliate-view { .pull-indicator { position: fixed; - top: 64px; + top: calc(64px + env(safe-area-inset-top)); width: 100%; background-color: transparent; display: flex;