From 91a5454b467f08c550b2beae523dfadd8eb41fcb Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Thu, 18 Sep 2025 20:05:16 +0800 Subject: [PATCH] feat(sync): aggregate books with metadata hash for progress and annotation sync (#2062) --- .../src/app/auth/recovery/page.tsx | 2 +- .../src/app/library/components/BookItem.tsx | 23 ++----- .../app/library/components/BookshelfItem.tsx | 21 +----- .../src/app/reader/components/BooksGrid.tsx | 1 - .../app/reader/components/ProgressInfo.tsx | 9 +-- .../src/app/reader/components/ViewMenu.tsx | 4 +- .../reader/components/sidebar/BookMenu.tsx | 3 +- .../src/app/reader/hooks/useNotesSync.ts | 18 ++++-- .../src/app/reader/hooks/useProgressSync.ts | 47 ++++++++------ apps/readest-app/src/components/MenuItem.tsx | 4 +- apps/readest-app/src/hooks/useLongPress.ts | 7 +- apps/readest-app/src/hooks/useSync.ts | 16 +++-- apps/readest-app/src/libs/document.ts | 3 +- apps/readest-app/src/libs/sync.ts | 9 ++- apps/readest-app/src/pages/api/sync.ts | 31 +++++++-- apps/readest-app/src/store/bookDataStore.ts | 1 + apps/readest-app/src/store/readerStore.ts | 27 +++++++- apps/readest-app/src/styles/globals.css | 20 ++++-- apps/readest-app/src/types/book.ts | 6 ++ apps/readest-app/src/types/records.ts | 3 + apps/readest-app/src/utils/book.ts | 62 +++++++++++++++++- apps/readest-app/src/utils/md5.ts | 2 + apps/readest-app/src/utils/transform.ts | 64 ++++++++++++++++--- packages/foliate-js | 2 +- 24 files changed, 284 insertions(+), 101 deletions(-) diff --git a/apps/readest-app/src/app/auth/recovery/page.tsx b/apps/readest-app/src/app/auth/recovery/page.tsx index 60ddf695..ff9967b8 100644 --- a/apps/readest-app/src/app/auth/recovery/page.tsx +++ b/apps/readest-app/src/app/auth/recovery/page.tsx @@ -46,7 +46,7 @@ export default function ResetPasswordPage() { return (
-
+
= ({ const { appService } = useEnv(); const iconSize15 = useResponsiveSize(15); - const stopEvent = (e: React.MouseEvent | React.TouchEvent) => { - e.preventDefault(); - e.stopPropagation(); - }; - return (
e.stopPropagation()} >
= ({