diff --git a/packages/ui/src/components/Accordion/Accordion.tsx b/packages/ui/src/components/Accordion/Accordion.tsx index 0f831e2fa..6ff8681e1 100644 --- a/packages/ui/src/components/Accordion/Accordion.tsx +++ b/packages/ui/src/components/Accordion/Accordion.tsx @@ -49,15 +49,15 @@ const AccordionComponent: FC = ({ const panels = useMemo( () => - Children.map(children, (child, i) => - cloneElement(child, { - alwaysOpen, - arrowIcon, - flush, - isOpen: isOpen === i, - setOpen: () => setOpen(isOpen === i ? -1 : i), - }), - ), + Children.map(children, (child, i) => { + return cloneElement(child, { + alwaysOpen: child.props.alwaysOpen ?? alwaysOpen, + arrowIcon: child.props.arrowIcon ?? arrowIcon, + flush: child.props.flush ?? flush, + isOpen: child.props.isOpen ?? isOpen === i, + setOpen: child.props.setOpen ?? (() => setOpen(isOpen === i ? -1 : i)), + }); + }), [alwaysOpen, arrowIcon, children, flush, isOpen], );