import cn from 'clsx'; import React, { FC, ReactNode, useState } from 'react'; import s from './Collapse.module.css'; import { ChevronRight } from '@components/icons'; import { useSpring, a } from '@react-spring/web'; import useMeasure from 'react-use-measure'; export interface CollapseProps { title: string; children: ReactNode; } const Collapse: FC = ({ title, children }) => { const [isActive, setActive] = useState(false); const [ref, { height: viewHeight }] = useMeasure(); const animProps = useSpring({ height: isActive ? viewHeight : 0, config: { tension: 250, friction: 32, clamp: true, duration: 150 }, opacity: isActive ? 1 : 0, }); const toggle = () => setActive((x) => !x); return (
{title}
{children}
); }; export default React.memo(Collapse);