UNPKG

@szhsin/react-accordion

Version:

The complete accordion solution for React.

18 lines (17 loc) 789 B
"use strict"; const require_useIsomorphicLayoutEffect = require("../utils/useIsomorphicLayoutEffect.cjs"); let react = require("react"); //#region src/hooks/useHeightTransition.ts const useHeightTransition = ({ status, isResolved }) => { const [height, setHeight] = (0, react.useState)(); const elementRef = (0, react.useRef)(null); require_useIsomorphicLayoutEffect.useLayoutEffect(() => { (status === "preEnter" || status === "preExit") && setHeight(elementRef.current.getBoundingClientRect().height); }, [status]); return [{ height: status === "preEnter" || status === "exiting" ? 0 : status === "entering" || status === "preExit" ? height : void 0, overflow: isResolved ? void 0 : "hidden" }, elementRef]; }; //#endregion exports.useHeightTransition = useHeightTransition;