Refactor lightbox prop drilling (#6073)

* Refactor lightbox footer to render prop

* Unify lightbox types

* Unindent

* Refactor LightboxFooter props

* Move LightboxFooter into the implementation file
This commit is contained in:
dan
2024-11-04 21:31:21 +00:00
committed by GitHub
parent 174988bc5a
commit 26c48373e2
7 changed files with 155 additions and 214 deletions
+3 -20
View File
@@ -1,32 +1,15 @@
import React from 'react'
import type {MeasuredDimensions} from 'react-native-reanimated'
import {AppBskyActorDefs} from '@atproto/api'
import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
import {Dimensions} from '#/lib/media/types'
import {ImageSource} from '#/view/com/lightbox/ImageViewing/@types'
type ProfileImageLightbox = {
type: 'profile-image'
profile: AppBskyActorDefs.ProfileViewDetailed
thumbDims: null
}
type ImagesLightboxItem = {
uri: string
thumbUri: string
alt?: string
dimensions: Dimensions | null
}
type ImagesLightbox = {
type: 'images'
images: ImagesLightboxItem[]
type Lightbox = {
images: ImageSource[]
thumbDims: MeasuredDimensions | null
index: number
}
type Lightbox = ProfileImageLightbox | ImagesLightbox
const LightboxContext = React.createContext<{
activeLightbox: Lightbox | null
}>({