From 9b336a6b66bacf8dfb115df2d78f4c426015a9c3 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Mon, 27 Oct 2025 12:02:57 +0200 Subject: [PATCH] Keep image index when rotating lightbox --- src/view/com/lightbox/ImageViewing/index.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/view/com/lightbox/ImageViewing/index.tsx b/src/view/com/lightbox/ImageViewing/index.tsx index bb3c39f594..9331a94e37 100644 --- a/src/view/com/lightbox/ImageViewing/index.tsx +++ b/src/view/com/lightbox/ImageViewing/index.tsx @@ -93,6 +93,7 @@ export default function ImageViewRoot({ 'use no memo' const ref = useAnimatedRef() const [activeLightbox, setActiveLightbox] = useState(nextLightbox) + const [imageIndex, setImageIndex] = useState(activeLightbox?.index ?? 0) const [orientation, setOrientation] = useState<'portrait' | 'landscape'>( 'portrait', ) @@ -100,6 +101,7 @@ export default function ImageViewRoot({ if (!activeLightbox && nextLightbox) { setActiveLightbox(nextLightbox) + setImageIndex(nextLightbox.index) } React.useEffect(() => { @@ -175,6 +177,8 @@ export default function ImageViewRoot({ void orientation: 'portrait' | 'landscape' onRequestClose: () => void onPressSave: (uri: string) => void @@ -208,11 +216,11 @@ function ImageView({ safeAreaRef: AnimatedRef openProgress: SharedValue }) { - const {images, index: initialImageIndex} = lightbox + const [initialImageIndex] = useState(imageIndex) + const {images} = lightbox const isAnimated = useMemo(() => canAnimate(lightbox), [lightbox]) const [isScaled, setIsScaled] = useState(false) const [isDragging, setIsDragging] = useState(false) - const [imageIndex, setImageIndex] = useState(initialImageIndex) const [showControls, setShowControls] = useState(true) const [isAltExpanded, setAltExpanded] = React.useState(false) const dismissSwipeTranslateY = useSharedValue(0)