import type { Dispatch, RefObject, SetStateAction } from "react"; type TUseSpoilerProps = { ref: RefObject; isActive?: boolean; }; type TUseSpoilerReturn = { isOpen: boolean; setIsOpen: Dispatch>; setHeight: () => void; }; /** * Возвращает переменную высоты элемента для создания спойлеров и переменные управления состоянием * @param ref - референс элемента, для которого необходимо рассчитать высоту * @param isActive - состояние активности спойлера * @returns {TUseSpoilerReturn} Возвращает текущее состояние спойлера (`isOpen`), setter `setIsOpen` и функцию `setHeight` для пересчёта CSS-переменной высоты. * @example * import { useSpoiler, useCN } from "@delement/ui/utils/react"; * import { useRef } from "react"; * import { Btn } from "@delement/ui/components"; * * const App = ({ baseClass = "myApp" }) => { * * const { getCN } = useCN(baseClass) * * const refOfElement = useRef(null); // к данному элементу добавится переменная --scrollHeight * * const { isOpen, setIsOpen } = useSpoiler({ ref: refOfElement, isActive: false }); * * const onClick = (e) => { * e.preventDefault(); * setIsOpen(isOpen => !isOpen); * } * * return ( *
* *
*

Контент элемента, который необходимо скрыть

*
*
* ) * } */ export declare const useSpoiler: ({ ref, isActive }: TUseSpoilerProps) => TUseSpoilerReturn; export {};