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
+ return (
+
+ )
})
-function LightboxInner({imgs, onClose}: {imgs: Img[]; onClose: () => void}) {
- const [index, setIndex] = React.useState(0)
+function LightboxInner({
+ imgs,
+ initialIndex = 0,
+ onClose,
+}: {
+ imgs: Img[]
+ initialIndex: number
+ onClose: () => void
+}) {
+ const [index, setIndex] = React.useState(initialIndex)
const canGoLeft = index >= 1
const canGoRight = index < imgs.length - 1