react-component-transition
Version:
Easy animations between react component transitions.
25 lines (24 loc) • 1.05 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.useContainerRectangle = void 0;
var react_1 = require("react");
var types_1 = require("./types");
var useContainerRectangle = function (props) {
var prevClientRect = react_1.useRef(null);
var nextClientRect = react_1.useRef(null);
var transitionState = props.transitionState, getElement = props.getElement, onFinish = props.onFinish;
if (getElement() && transitionState === types_1.TransitionState.Exit) {
prevClientRect.current = getElement().getBoundingClientRect();
}
react_1.useLayoutEffect(function () {
if (getElement() && transitionState === types_1.TransitionState.ContainerRect) {
nextClientRect.current = getElement().getBoundingClientRect();
onFinish();
}
}, [transitionState]);
return {
prevClientRect: prevClientRect.current,
nextClientRect: nextClientRect.current,
};
};
exports.useContainerRectangle = useContainerRectangle;
;