Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 161bbd1

Browse filesBrowse files
committed
fix(CAccordion): add a missing ID attribute to the accordion collapse items
1 parent 7c91c99 commit 161bbd1
Copy full SHA for 161bbd1

File tree

2 files changed

+12
-8
lines changed
Filter options

2 files changed

+12
-8
lines changed

‎packages/coreui-react/src/components/accordion/CAccordionBody.tsx

Copy file name to clipboardExpand all lines: packages/coreui-react/src/components/accordion/CAccordionBody.tsx
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ export interface CAccordionBodyProps extends HTMLAttributes<HTMLDivElement> {
1515

1616
export const CAccordionBody = forwardRef<HTMLDivElement, CAccordionBodyProps>(
1717
({ children, className, ...rest }, ref) => {
18-
const { visible } = useContext(CAccordionItemContext)
18+
const { id, visible } = useContext(CAccordionItemContext)
1919

2020
return (
21-
<CCollapse className="accordion-collapse" visible={visible}>
21+
<CCollapse className="accordion-collapse" id={id} visible={visible}>
2222
<div className={classNames('accordion-body', className)} {...rest} ref={ref}>
2323
{children}
2424
</div>
2525
</CCollapse>
2626
)
27-
},
27+
}
2828
)
2929

3030
CAccordionBody.propTypes = {

‎packages/coreui-react/src/components/accordion/CAccordionItem.tsx

Copy file name to clipboardExpand all lines: packages/coreui-react/src/components/accordion/CAccordionItem.tsx
+9-5Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ export interface CAccordionItemContextProps {
2222
export const CAccordionItemContext = createContext({} as CAccordionItemContextProps)
2323

2424
export interface CAccordionItemProps extends HTMLAttributes<HTMLDivElement> {
25+
/**
26+
* The id global attribute defines an identifier (ID) that must be unique in the whole document.
27+
*/
28+
id?: string
2529
/**
2630
* A string of all className you want applied to the base component.
2731
*/
@@ -33,9 +37,9 @@ export interface CAccordionItemProps extends HTMLAttributes<HTMLDivElement> {
3337
}
3438

3539
export const CAccordionItem = forwardRef<HTMLDivElement, CAccordionItemProps>(
36-
({ children, className, itemKey, ...rest }, ref) => {
37-
const id = useId()
38-
const _itemKey = useRef(itemKey ?? id)
40+
({ children, className, id, itemKey, ...rest }, ref) => {
41+
const _id = id ?? useId()
42+
const _itemKey = useRef(itemKey ?? _id)
3943

4044
const { _activeItemKey, alwaysOpen, setActiveKey } = useContext(CAccordionContext)
4145
const [visible, setVisible] = useState(Boolean(_activeItemKey === _itemKey.current))
@@ -52,12 +56,12 @@ export const CAccordionItem = forwardRef<HTMLDivElement, CAccordionItemProps>(
5256

5357
return (
5458
<div className={classNames('accordion-item', className)} {...rest} ref={ref}>
55-
<CAccordionItemContext.Provider value={{ id, setVisible, visible }}>
59+
<CAccordionItemContext.Provider value={{ id: _id, setVisible, visible }}>
5660
{children}
5761
</CAccordionItemContext.Provider>
5862
</div>
5963
)
60-
},
64+
}
6165
)
6266

6367
CAccordionItem.propTypes = {

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.