ToolJet/frontend/src/_hooks/useMountTransition.js
Parth 761b1ca2e2
Fix: Inconsistent Drawer Open/Close Transitions on Dashboard in TJDB (#9710)
* Ensure consistent transition timing

* Revert "Ensure consistent transition timing"

This reverts commit 83301a34af.

* Revert "Revert "Ensure consistent transition timing""

This reverts commit e190f0b1f2.

* Remove unrequired code
2024-05-28 21:15:55 +05:30

22 lines
631 B
JavaScript

import { useEffect, useState } from 'react';
const useMountTransition = (isMounted, unmountDelay) => {
const [isTransitioning, setIsTransitioning] = useState(false);
useEffect(() => {
let timeoutId;
if (isMounted && !isTransitioning) {
timeoutId = setTimeout(() => setIsTransitioning(true), unmountDelay);
} else if (!isMounted && isTransitioning) {
timeoutId = setTimeout(() => setIsTransitioning(false), unmountDelay);
}
return () => {
clearTimeout(timeoutId);
};
}, [unmountDelay, isMounted, isTransitioning]);
return isTransitioning;
};
export default useMountTransition;