|
1 | | -import React, { useState } from 'react' |
2 | | -import AccordionRoot from './shards/AccordionRoot' |
3 | | -import AccordionItem from './shards/AccordionItem' |
4 | | -import AccordionHeader from './shards/AccordionHeader' |
5 | | -import AccordionTrigger from './shards/AccordionTrigger' |
6 | | -import AccordionContent from './shards/AccordionContent' |
| 1 | +import React, {useState} from 'react'; |
| 2 | +import AccordionRoot from './shards/AccordionRoot'; |
| 3 | +import AccordionItem from './shards/AccordionItem'; |
| 4 | +import AccordionHeader from './shards/AccordionHeader'; |
| 5 | +import AccordionTrigger from './shards/AccordionTrigger'; |
| 6 | +import AccordionContent from './shards/AccordionContent'; |
7 | 7 |
|
8 | 8 | export type AccordionProps = { |
9 | | - items: { content: any }[] |
| 9 | + items: {content: any}[]; |
10 | 10 | } |
11 | 11 |
|
12 | | -const Accordion = ({ items }: AccordionProps) => { |
13 | | - const [activeIndex, setActiveIndex] = useState<number>(-1) |
14 | | - const handleClick = (index: number) => { |
15 | | - setActiveIndex(activeIndex === index ? -1 : index) |
16 | | - } |
| 12 | +const Accordion = ({items} : AccordionProps) => { |
| 13 | + const [activeIndex, setActiveIndex] = useState<number>(-1); |
| 14 | + const handleClick = (index: number) => { |
| 15 | + setActiveIndex(activeIndex === index ? -1 : index); |
| 16 | + }; |
17 | 17 |
|
18 | | - return ( |
19 | | - <AccordionRoot> |
20 | | - {items.map((item, index) => ( |
21 | | - <AccordionItem value={index}> |
22 | | - <AccordionHeader> |
23 | | - <AccordionTrigger |
24 | | - handleClick={handleClick} |
25 | | - index={index} |
26 | | - activeIndex={activeIndex} |
27 | | - > |
28 | | - Item {index + 1} |
29 | | - </AccordionTrigger> |
30 | | - </AccordionHeader> |
31 | | - <AccordionContent index={index} activeIndex={activeIndex}> |
32 | | - {item.content} |
33 | | - </AccordionContent> |
34 | | - </AccordionItem> |
35 | | - ))} |
36 | | - </AccordionRoot> |
37 | | - ) |
38 | | -} |
| 18 | + return ( |
| 19 | + <AccordionRoot> |
| 20 | + {items.map((item, index) => ( |
| 21 | + <AccordionItem value={index}> |
| 22 | + <AccordionHeader> |
| 23 | + <AccordionTrigger handleClick={handleClick} index={index} activeIndex={activeIndex} > |
| 24 | + Item {index+1} |
| 25 | + </AccordionTrigger> |
| 26 | + </AccordionHeader> |
| 27 | + <AccordionContent index={index} activeIndex={activeIndex}> |
| 28 | + {item.content} |
| 29 | + </AccordionContent> |
| 30 | + </AccordionItem> |
| 31 | + ))} |
| 32 | + </AccordionRoot> |
| 33 | + ); |
| 34 | +}; |
39 | 35 |
|
40 | | -Accordion.Root = AccordionRoot |
| 36 | +Accordion.Root = AccordionRoot; |
41 | 37 |
|
42 | | -export default Accordion |
| 38 | +export default Accordion; |
0 commit comments