This repository was archived by the owner on May 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathindex.tsx
More file actions
41 lines (36 loc) · 1.3 KB
/
index.tsx
File metadata and controls
41 lines (36 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import React from 'react';
import { StandaloneChevronDownRegularIcon } from '@deriv/quill-icons';
import * as Accordion from '@radix-ui/react-accordion';
import './custom-accordion.scss';
type TCustomAccordionProps = {
items: Array<{ header: string; content: React.ReactNode }>;
};
const AccordionTrigger: React.FC = ({ children }) => (
<Accordion.Header className='accordion_header'>
<Accordion.Trigger className='accordion_header__trigger'>
{children}
<StandaloneChevronDownRegularIcon iconSize='md' className='accordion_chevron' />
</Accordion.Trigger>
</Accordion.Header>
);
const AccordionContent: React.FC = ({ children }) => (
<Accordion.Content className='accordion_content'>
<div className='accordion_content__text'>{children}</div>
</Accordion.Content>
);
const CustomAccordion: React.FC<TCustomAccordionProps> = ({ items }) => (
<Accordion.Root
data-testid='dt_accordion_root'
className='accordion_root'
type='single'
collapsible
>
{items.map((item) => (
<Accordion.Item className='accordion_root__item' key={item.header} value={item.header}>
<AccordionTrigger>{item.header}</AccordionTrigger>
<AccordionContent>{item.content}</AccordionContent>
</Accordion.Item>
))}
</Accordion.Root>
);
export default CustomAccordion;