fix(SW-96): allow nested children to trigger lightbox
This commit is contained in:
@@ -46,14 +46,23 @@ export function DesktopLightbox({ images, children }: DesktopLightboxProps) {
|
||||
)
|
||||
}
|
||||
|
||||
const triggerElement = React.Children.map(children, (child) => {
|
||||
if (React.isValidElement(child) && child.props.id === "lightboxTrigger") {
|
||||
return React.cloneElement(child, {
|
||||
onClick: () => setIsOpen(true),
|
||||
} as React.HTMLAttributes<HTMLElement>)
|
||||
const triggerElement = React.Children.map(
|
||||
children,
|
||||
function mapChild(child): React.ReactNode {
|
||||
if (React.isValidElement(child)) {
|
||||
if (child.props.id === "lightboxTrigger") {
|
||||
return React.cloneElement(child, {
|
||||
onClick: () => setIsOpen(true),
|
||||
} as React.HTMLAttributes<HTMLElement>)
|
||||
} else if (child.props.children) {
|
||||
return React.cloneElement(child, {
|
||||
children: React.Children.map(child.props.children, mapChild),
|
||||
} as React.HTMLAttributes<HTMLElement>)
|
||||
}
|
||||
}
|
||||
return child
|
||||
}
|
||||
return child
|
||||
})
|
||||
)
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
Reference in New Issue
Block a user