From def8be2137846adac1afd09fa237e08656f97c5c Mon Sep 17 00:00:00 2001
From: John Fawcett <jrf0110@gmail.com>
Date: Mon, 27 Mar 2023 10:18:14 -0500
Subject: [PATCH] Fixes the lightbox image index not being passed through to
 the web version (#306) (#324)

---
 src/view/com/lightbox/Lightbox.web.tsx | 28 +++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/view/com/lightbox/Lightbox.web.tsx b/src/view/com/lightbox/Lightbox.web.tsx
index f12839fb..f1054835 100644
--- a/src/view/com/lightbox/Lightbox.web.tsx
+++ b/src/view/com/lightbox/Lightbox.web.tsx
@@ -23,16 +23,20 @@ export const Lightbox = observer(function Lightbox() {
     return null
   }
 
+  const activeLightbox = store.shell.activeLightbox
+  const initialIndex =
+    activeLightbox instanceof models.ImagesLightbox ? activeLightbox.index : 0
+
   const onClose = () => store.shell.closeLightbox()
 
   let imgs: Img[] | undefined
-  if (store.shell.activeLightbox?.name === 'profile-image') {
-    const opts = store.shell.activeLightbox as models.ProfileImageLightbox
+  if (activeLightbox instanceof models.ProfileImageLightbox) {
+    const opts = activeLightbox
     if (opts.profileView.avatar) {
       imgs = [{uri: opts.profileView.avatar}]
     }
-  } else if (store.shell.activeLightbox?.name === 'images') {
-    const opts = store.shell.activeLightbox as models.ImagesLightbox
+  } else if (activeLightbox instanceof models.ImagesLightbox) {
+    const opts = activeLightbox
     imgs = opts.uris.map(uri => ({uri}))
   }
 
@@ -40,11 +44,21 @@ export const Lightbox = observer(function Lightbox() {
     return null
   }
 
-  return <LightboxInner imgs={imgs} onClose={onClose} />
+  return (
+    <LightboxInner imgs={imgs} initialIndex={initialIndex} onClose={onClose} />
+  )
 })
 
-function LightboxInner({imgs, onClose}: {imgs: Img[]; onClose: () => void}) {
-  const [index, setIndex] = React.useState<number>(0)
+function LightboxInner({
+  imgs,
+  initialIndex = 0,
+  onClose,
+}: {
+  imgs: Img[]
+  initialIndex: number
+  onClose: () => void
+}) {
+  const [index, setIndex] = React.useState<number>(initialIndex)
 
   const canGoLeft = index >= 1
   const canGoRight = index < imgs.length - 1