fix(SW-96): allow nested children to trigger lightbox

This commit is contained in:
Chuma McPhoy
2024-08-20 09:35:36 +02:00
parent b04b5ca23b
commit ee4211d20c

View File

@@ -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 (
<>