Key lightbox by id

This commit is contained in:
Dan Abramov
2024-11-02 00:49:53 +00:00
parent 68ab910d5a
commit f08e542995
2 changed files with 11 additions and 4 deletions
+10 -3
View File
@@ -1,10 +1,12 @@
import React from 'react'
import type {MeasuredDimensions} from 'react-native-reanimated'
import {nanoid} from 'nanoid/non-secure'
import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
import {ImageSource} from '#/view/com/lightbox/ImageViewing/@types'
export type Lightbox = {
id: string
images: ImageSource[]
thumbDims: MeasuredDimensions | null
index: number
@@ -29,9 +31,14 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
null,
)
const openLightbox = useNonReactiveCallback((lightbox: Lightbox) => {
setActiveLightbox(lightbox)
})
const openLightbox = useNonReactiveCallback(
(lightbox: Omit<Lightbox, 'id'>) => {
setActiveLightbox({
...lightbox,
id: nanoid(),
})
},
)
const closeLightbox = useNonReactiveCallback(() => {
let wasActive = !!activeLightbox
+1 -1
View File
@@ -398,7 +398,7 @@ function ImageViewingRoot({
}
return (
<ImageViewing
key={lightbox.index}
key={lightbox.id}
lightbox={lightbox}
onRequestClose={onRequestClose}
onPressSave={onPressSave}