From 1d2d63bdc706ab8ea7e37d5301437b57b9e896ce Mon Sep 17 00:00:00 2001 From: Quantum Date: Sun, 7 Apr 2024 02:19:40 -0400 Subject: [PATCH] Fix Collapsible --- src/Collapsible.tsx | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) 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}
; }