From 717495ee1c267e899eb3b73182c39a4cd9f4f48a Mon Sep 17 00:00:00 2001 From: Guilherme Datilio Ribeiro Date: Wed, 24 Jan 2024 09:27:45 -0300 Subject: [PATCH] Accordion controlled (#15589) * fix: added controlled state back * fix: removed test story * fix: removed test story --- .../components/Accordion/Accordion.stories.js | 399 ------------------ .../components/Accordion/AccordionItem.tsx | 6 + 2 files changed, 6 insertions(+), 399 deletions(-) diff --git a/packages/react/src/components/Accordion/Accordion.stories.js b/packages/react/src/components/Accordion/Accordion.stories.js index 079e34141371..02ff315ca1b7 100644 --- a/packages/react/src/components/Accordion/Accordion.stories.js +++ b/packages/react/src/components/Accordion/Accordion.stories.js @@ -15,13 +15,6 @@ import { } from '../Accordion'; import Button from '../Button'; import mdx from './Accordion.mdx'; -import { Information } from '@carbon/icons-react'; -import { - ToggletipLabel, - Toggletip, - ToggletipButton, - ToggletipContent, -} from '../Toggletip'; import { WithLayer } from '../../../.storybook/templates/WithLayer'; @@ -76,398 +69,6 @@ export const Default = () => ( ); -export const Test = () => ( - - - Toggletip label - - - - - -

- Lorem ipsum dolor sit amet, di os consectetur adipiscing elit, sed - do eiusmod tempor incididunt ut fsil labore et dolore magna aliqua. -

-
-
-
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
{' '} -
content is still rendered when accordion is collapsed
-
- -

HELLO

-
-
-); - export const _WithLayer = () => ( diff --git a/packages/react/src/components/Accordion/AccordionItem.tsx b/packages/react/src/components/Accordion/AccordionItem.tsx index ad19567807a5..d8a39833903d 100644 --- a/packages/react/src/components/Accordion/AccordionItem.tsx +++ b/packages/react/src/components/Accordion/AccordionItem.tsx @@ -118,6 +118,7 @@ function AccordionItem({ ...rest }: PropsWithChildren) { const [isOpen, setIsOpen] = useState(open); + const [prevIsOpen, setPrevIsOpen] = useState(open); const accordionState = useContext(AccordionContext); const disabledIsControlled = typeof controlledDisabled === 'boolean'; @@ -138,6 +139,11 @@ function AccordionItem({ const content = useRef(null); + if (open !== prevIsOpen) { + setIsOpen(open); + setPrevIsOpen(open); + } + // When the AccordionItem heading is clicked, toggle the open state of the // panel function onClick(event) {