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) => { const triggerElement = React.Children.map(
if (React.isValidElement(child) && child.props.id === "lightboxTrigger") { children,
function mapChild(child): React.ReactNode {
if (React.isValidElement(child)) {
if (child.props.id === "lightboxTrigger") {
return React.cloneElement(child, { return React.cloneElement(child, {
onClick: () => setIsOpen(true), onClick: () => setIsOpen(true),
} as React.HTMLAttributes<HTMLElement>) } 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 ( return (
<> <>