import React, { forwardRef, useEffect, useRef, useState } from "react"; import cx from "classnames"; import { AnimatePresence } from "framer-motion"; import { TransitionViewProps } from "./TransitionView.types"; import { getTestId } from "../../tests/test-ids-utils"; import { ComponentDefaultTestId } from "../../tests/constants"; import styles from "./TransitionView.module.scss"; import SlideTransition from "../SlideTransition/SlideTransition"; const TransitionView = forwardRef( ( { activeStep, direction, height, id, className, "data-testid": dataTestId, children }: TransitionViewProps, ref: React.ForwardedRef ) => { const slideTransitionRef = useRef(null); const [contentHeight, setContentHeight] = useState(height); const slideTransitionHeight = height || contentHeight > 0 ? "100%" : "auto"; useEffect(() => { if (!slideTransitionRef.current) return; setContentHeight(slideTransitionRef.current.scrollHeight); }, [height, slideTransitionRef]); return (
{children[activeStep]}
); } ); export default TransitionView;