totp/src/Collapsible.tsx
2025-02-10 15:13:29 -08:00

19 lines
463 B
TypeScript

import {ReactNode, useEffect, useId} from 'react';
import {Collapse} from 'bootstrap';
export default function Collapsible({children, show}: { children: ReactNode; show: boolean }) {
const id = useId();
useEffect(() => {
const collapse = Collapse.getOrCreateInstance(`#${id}`, {toggle: show});
if (show)
collapse.show();
else
collapse.hide();
}, [id, show]);
return <div id={id} className="collapse">
{children}
</div>;
}