load 5 pages first
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
hamid zarghami
2026-05-30 15:44:56 +03:30
parent f95aeb1810
commit f6147fafa1
9 changed files with 289 additions and 23 deletions
+15 -3
View File
@@ -9,6 +9,8 @@ import { useBookEntranceController } from '@/pages/viewer/hooks/useBookEntranceC
import { useViewerViewport } from '@/pages/viewer/hooks/useViewerViewport';
import { useIsBrowserFullscreen } from '@/pages/viewer/hooks/useIsBrowserFullscreen';
import { toggleViewerFullscreen } from '@/pages/viewer/utils/viewerFullscreen';
import { isLegacyIOSSafari } from '@/pages/viewer/utils/isLegacyIOSSafari';
import { clx } from '@/helpers/utils';
/** فاصله پیش‌فرض بین هر ورق در پخش خودکار (میلی‌ثانیه) */
const AUTO_PLAY_INTERVAL_MS = 3000;
@@ -36,6 +38,14 @@ function useIsDesktop() {
);
}
function useLegacyIOSSafari() {
return useSyncExternalStore(
() => () => {},
isLegacyIOSSafari,
() => false
);
}
export type BookViewerProps = {
pages: PageData[];
catalogSize?: string;
@@ -117,6 +127,7 @@ const BookViewer: FC<BookViewerProps> = ({ pages, catalogSize, documentSettings
const [isAutoPlayActive, setIsAutoPlayActive] = useState(false);
const [startPage, setStartPage] = useState(0);
const isDesktop = useIsDesktop();
const legacyIOS = useLegacyIOSSafari();
const isBrowserFullscreen = useIsBrowserFullscreen();
const autoPlay = documentSettings?.autoPlay ?? false;
@@ -481,12 +492,12 @@ const BookViewer: FC<BookViewerProps> = ({ pages, catalogSize, documentSettings
minHeight={pagePixelHeight}
maxWidth={pagePixelWidth}
maxHeight={pagePixelHeight}
drawShadow={true}
drawShadow={!legacyIOS}
flippingTime={800}
usePortrait={usePortrait}
startPage={startPage}
autoSize={false}
maxShadowOpacity={isDesktop ? 0.55 : 0.32}
maxShadowOpacity={legacyIOS ? 0 : isDesktop ? 0.55 : 0.32}
showCover={hasMultiplePages}
mobileScrollSupport={!usePortrait}
clickEventForward={true}
@@ -495,7 +506,7 @@ const BookViewer: FC<BookViewerProps> = ({ pages, catalogSize, documentSettings
startZIndex={1}
showPageCorners={hasMultiplePages}
disableFlipByClick={true}
className="flipbook-container mx-auto max-w-full"
className={clx('flipbook-container mx-auto max-w-full', legacyIOS && 'flipbook-legacy-ios')}
style={{}}
onFlip={onFlipForwarded}
onInit={handleBookInit}
@@ -514,6 +525,7 @@ const BookViewer: FC<BookViewerProps> = ({ pages, catalogSize, documentSettings
backgroundColor={page.backgroundColor ?? backgroundColor}
backgroundGradient={page.backgroundGradient ?? backgroundGradient}
backgroundImageUrl={page.backgroundImageUrl ?? backgroundImageUrl}
useHardPage={legacyIOS}
/>
))}
</HTMLFlipBook>