From b3254c1d7685b05a1636e68df57791c8dc2d4baa Mon Sep 17 00:00:00 2001 From: Cody Leff Date: Fri, 2 Dec 2022 20:11:11 -0700 Subject: [PATCH] Fix broken effect in useCSSTextTruncation hook. --- .../useTruncation/useCSSTextTruncation.ts | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/superset-frontend/src/hooks/useTruncation/useCSSTextTruncation.ts b/superset-frontend/src/hooks/useTruncation/useCSSTextTruncation.ts index 4629331dd16ac..a591766fbb2c7 100644 --- a/superset-frontend/src/hooks/useTruncation/useCSSTextTruncation.ts +++ b/superset-frontend/src/hooks/useTruncation/useCSSTextTruncation.ts @@ -42,21 +42,18 @@ const useCSSTextTruncation = (): [ ] => { const [isTruncated, setIsTruncated] = useState(true); const ref = useRef(null); - const { offsetWidth, scrollWidth } = ref.current ?? {}; - const prevWidths = useRef({ offsetWidth, scrollWidth }); - const { offsetWidth: prevOffsetWidth, scrollWidth: prevScrollWidth } = - prevWidths.current; + const [offsetWidth, setOffsetWidth] = useState(0); + const [scrollWidth, setScrollWidth] = useState(0); + // eslint-disable-next-line react-hooks/exhaustive-deps useEffect(() => { - if ( - offsetWidth && - scrollWidth && - (offsetWidth !== prevOffsetWidth || scrollWidth !== prevScrollWidth) - ) { - prevWidths.current = { offsetWidth, scrollWidth }; - setIsTruncated(offsetWidth < scrollWidth); - } - }, [offsetWidth, prevOffsetWidth, prevScrollWidth, scrollWidth]); + setOffsetWidth(ref.current?.offsetWidth ?? 0); + setScrollWidth(ref.current?.scrollWidth ?? 0); + }); + + useEffect(() => { + setIsTruncated(offsetWidth < scrollWidth); + }, [offsetWidth, scrollWidth]); return [ref, isTruncated]; };