From 25822b05a6e259d0a953583e40c53638d3013e2e Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Wed, 6 May 2026 15:13:06 +0330 Subject: [PATCH] hasMultiplePages --- src/pages/viewer/components/BookViewer.tsx | 86 ++++++++++++---------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/src/pages/viewer/components/BookViewer.tsx b/src/pages/viewer/components/BookViewer.tsx index c55e7aa..70e764f 100644 --- a/src/pages/viewer/components/BookViewer.tsx +++ b/src/pages/viewer/components/BookViewer.tsx @@ -109,6 +109,7 @@ const BookViewer: FC = ({ pages, catalogSize, documentSettings ); const displayWidth = Math.round(bookWidth * VIEWER_SCALE); const displayHeight = Math.round(bookHeight * VIEWER_SCALE); + const hasMultiplePages = pages.length > 1; // موبایل: از ابعاد viewport برای جا دادن کتاب در صفحه const [viewport, setViewport] = useState(() => @@ -290,6 +291,7 @@ const BookViewer: FC = ({ pages, catalogSize, documentSettings }, [isAutoPlayActive]); const handleLinkClick = useCallback((linkUrl: string) => { + if (pages.length <= 1) return; if (linkUrl.startsWith('page://')) { const action = linkUrl.replace('page://', ''); const pageFlipAPI = bookRef.current?.pageFlip() as PageFlipWithFlipController | undefined; @@ -432,13 +434,13 @@ const BookViewer: FC = ({ pages, catalogSize, documentSettings startPage={startPage} autoSize={false} maxShadowOpacity={isDesktop ? 0.5 : 0} - showCover={true} + showCover={hasMultiplePages} mobileScrollSupport={!usePortrait} clickEventForward={true} - useMouseEvents={true} - swipeDistance={usePortrait ? 48 : 30} + useMouseEvents={hasMultiplePages} + swipeDistance={hasMultiplePages ? (usePortrait ? 48 : 30) : 9999} startZIndex={1} - showPageCorners={true} + showPageCorners={hasMultiplePages} disableFlipByClick={true} className="flipbook-container mx-auto max-w-full" style={{}} @@ -464,23 +466,27 @@ const BookViewer: FC = ({ pages, catalogSize, documentSettings
- {/* دکمه راست: فارسی = صفحه بعد | لاتین = صفحه قبل */} - + {hasMultiplePages && ( + <> + {/* دکمه راست: فارسی = صفحه بعد | لاتین = صفحه قبل */} + + + )} {/* شماره صفحه */}
@@ -489,23 +495,27 @@ const BookViewer: FC = ({ pages, catalogSize, documentSettings
- {/* دکمه چپ: فارسی = صفحه قبل | لاتین = صفحه بعد */} - + {hasMultiplePages && ( + <> + {/* دکمه چپ: فارسی = صفحه قبل | لاتین = صفحه بعد */} + + + )}
);