From e49dd4accbfb2fe8800f3ff7095233df44e0e1bd Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sat, 17 May 2025 23:02:42 +0800 Subject: [PATCH] feat: show cloud backup status for each book on mobile and desktop, closes #1167 (#1173) --- .../src/app/library/components/BookItem.tsx | 92 +++++++++++-------- .../src/app/library/components/Bookshelf.tsx | 16 ++-- 2 files changed, 61 insertions(+), 47 deletions(-) diff --git a/apps/readest-app/src/app/library/components/BookItem.tsx b/apps/readest-app/src/app/library/components/BookItem.tsx index 6915f85e..dd3850ca 100644 --- a/apps/readest-app/src/app/library/components/BookItem.tsx +++ b/apps/readest-app/src/app/library/components/BookItem.tsx @@ -1,12 +1,18 @@ import clsx from 'clsx'; import { MdCheckCircle, MdCheckCircleOutline } from 'react-icons/md'; -import { CiCircleMore } from 'react-icons/ci'; -import { LiaCloudUploadAltSolid, LiaCloudDownloadAltSolid } from 'react-icons/lia'; +import { + LiaCloudUploadAltSolid, + LiaCloudDownloadAltSolid, + LiaInfoCircleSolid, +} from 'react-icons/lia'; import { Book } from '@/types/book'; import { useEnv } from '@/context/EnvContext'; +import { useAuth } from '@/context/AuthContext'; +import { useRouter } from 'next/navigation'; import { useResponsiveSize } from '@/hooks/useResponsiveSize'; import { LibraryViewModeType } from '@/types/settings'; +import { navigateToLogin } from '@/utils/nav'; import { formatAuthors } from '@/utils/book'; import ReadingProgress from './ReadingProgress'; import BookCover from '@/components/BookCover'; @@ -32,8 +38,10 @@ const BookItem: React.FC = ({ handleBookDownload, showBookDetailsModal, }) => { - const iconSize15 = useResponsiveSize(15); + const router = useRouter(); + const { user } = useAuth(); const { appService } = useEnv(); + const iconSize15 = useResponsiveSize(15); const stopEvent = (e: React.MouseEvent | React.TouchEvent) => { e.preventDefault(); @@ -96,11 +104,26 @@ const BookItem: React.FC = ({ className={clsx('flex items-center', book.progress ? 'justify-between' : 'justify-end')} > {book.progress && } -
+
+ {!appService?.isMobile && ( + + )} {transferProgress !== null ? ( transferProgress === 100 ? null : (
= ({ >
) ) : ( - - )} - {!appService?.isMobile && ( - + (!book.uploadedAt || (book.uploadedAt && !book.downloadedAt)) && ( + + ) )}
diff --git a/apps/readest-app/src/app/library/components/Bookshelf.tsx b/apps/readest-app/src/app/library/components/Bookshelf.tsx index 88d713dd..b4401b80 100644 --- a/apps/readest-app/src/app/library/components/Bookshelf.tsx +++ b/apps/readest-app/src/app/library/components/Bookshelf.tsx @@ -343,15 +343,13 @@ const Bookshelf: React.FC = ({
{_('Delete')}
- {!appService?.isMobile && ( - - )} + )}