diff --git a/src/components/reader/PhotoswipeReader.tsx b/src/components/reader/PhotoswipeReader.tsx index 0839b84..d061424 100644 --- a/src/components/reader/PhotoswipeReader.tsx +++ b/src/components/reader/PhotoswipeReader.tsx @@ -80,10 +80,26 @@ export function PhotoswipeReader({ book, pages, onClose, nextBook }: BookReaderP }); // Activer le zoom dans le reader en enlevant la classe no-pinch-zoom + // et reset le zoom lors des changements d'orientation (iOS applique un zoom automatique) useEffect(() => { document.body.classList.remove("no-pinch-zoom"); + const handleOrientationChange = () => { + const viewport = document.querySelector('meta[name="viewport"]'); + if (viewport) { + const original = viewport.getAttribute("content") || ""; + viewport.setAttribute("content", original + ", maximum-scale=1"); + // Restaurer après que iOS ait appliqué le nouveau layout + requestAnimationFrame(() => { + viewport.setAttribute("content", original); + }); + } + }; + + window.addEventListener("orientationchange", handleOrientationChange); + return () => { + window.removeEventListener("orientationchange", handleOrientationChange); document.body.classList.add("no-pinch-zoom"); }; }, []); diff --git a/src/components/reader/hooks/useTouchNavigation.ts b/src/components/reader/hooks/useTouchNavigation.ts index 18941d7..5a9473d 100644 --- a/src/components/reader/hooks/useTouchNavigation.ts +++ b/src/components/reader/hooks/useTouchNavigation.ts @@ -19,13 +19,9 @@ export function useTouchNavigation({ // Helper pour vérifier si la page est zoomée (zoom natif du navigateur) const isZoomed = useCallback(() => { - // Utiliser visualViewport.scale pour détecter le zoom natif - // Si scale > 1, la page est zoomée if (window.visualViewport) { return window.visualViewport.scale > 1.05; } - // Fallback pour les navigateurs qui ne supportent pas visualViewport - // Comparer la taille de la fenêtre avec la taille réelle return window.innerWidth !== window.screen.width; }, []);