From 4cf740aa68ea842ec7cc1433d99c4fa6e2a480c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matuzal=C3=A9m=20Teles?= Date: Tue, 22 Sep 2020 15:13:59 -0300 Subject: [PATCH] fix(@clayui/shared): removes the onTransitionEnd listener from elements by setTimeout Trusting `onTransitionEnd` has been showing a little uncertainty as to whether the transition happened, so instead of adding a fallback to this we will add the implementation only in setTimeout as the trigger of the final transition, calculating the duration time of the style properties. --- packages/clay-nav/src/Vertical.tsx | 13 ++- packages/clay-navigation-bar/src/index.tsx | 13 ++- packages/clay-panel/src/index.tsx | 13 ++- .../clay-shared/src/useTransitionHeight.ts | 87 +++++++------------ 4 files changed, 50 insertions(+), 76 deletions(-) diff --git a/packages/clay-nav/src/Vertical.tsx b/packages/clay-nav/src/Vertical.tsx index 4d8503144b..47d35436cb 100644 --- a/packages/clay-nav/src/Vertical.tsx +++ b/packages/clay-nav/src/Vertical.tsx @@ -110,11 +110,11 @@ function Item({ const menuRef = React.useRef(null); const [expanded, setExpaned] = React.useState(!initialExpanded); - const [ - transitioning, - handleTransitionEnd, - handleClickToggler, - ] = useTransitionHeight(expanded, setExpaned, menuRef); + const {animate, transitioning} = useTransitionHeight( + expanded, + setExpaned, + menuRef + ); const showIconCollapsed = !( (!expanded && transitioning) || @@ -128,7 +128,7 @@ function Item({ collapsed={showIconCollapsed} href={href} onClick={(e) => { - handleClickToggler(e); + animate(e); if (onClick) { onClick(); @@ -148,7 +148,6 @@ function Item({ collapsing: transitioning, show: expanded, })} - onTransitionEnd={handleTransitionEnd} ref={menuRef} >