diff --git a/src/Collapsible.tsx b/src/Collapsible.tsx index ad5cef5..bc6a477 100644 --- a/src/Collapsible.tsx +++ b/src/Collapsible.tsx @@ -1,28 +1,18 @@ import React from 'react'; import {Collapse} from 'bootstrap'; -import classNames from 'classnames'; - -export interface CollapsibleHandle { - show: () => void; - hide: () => void; - toggle: () => void; -} export default function Collapsible({children, show}: { children: React.ReactNode; show: boolean }) { - const collapse = React.useRef(); - - const onLoad = React.useCallback((element: HTMLDivElement) => { - collapse.current = new Collapse(element, {toggle: show}); - }, []); + const id = React.useId(); React.useEffect(() => { + const collapse = Collapse.getOrCreateInstance(`#${id}`, {toggle: show}); if (show) - collapse.current?.show(); + collapse.show(); else - collapse.current?.hide(); - }, [show]); + collapse.hide(); + }, [id, show]); - return
+ return
{children}
; }