mirror of
https://github.com/apache/superset.git
synced 2024-09-06 05:47:43 -04:00
fix: Broken effect in useCSSTextTruncation hook (#22324)
This commit is contained in:
parent
ff1d29c539
commit
2731cbacbf
@ -42,21 +42,18 @@ const useCSSTextTruncation = <T extends HTMLElement>(): [
|
|||||||
] => {
|
] => {
|
||||||
const [isTruncated, setIsTruncated] = useState(true);
|
const [isTruncated, setIsTruncated] = useState(true);
|
||||||
const ref = useRef<T>(null);
|
const ref = useRef<T>(null);
|
||||||
const { offsetWidth, scrollWidth } = ref.current ?? {};
|
const [offsetWidth, setOffsetWidth] = useState(0);
|
||||||
const prevWidths = useRef({ offsetWidth, scrollWidth });
|
const [scrollWidth, setScrollWidth] = useState(0);
|
||||||
const { offsetWidth: prevOffsetWidth, scrollWidth: prevScrollWidth } =
|
|
||||||
prevWidths.current;
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
useEffect(() => {
|
||||||
|
setOffsetWidth(ref.current?.offsetWidth ?? 0);
|
||||||
|
setScrollWidth(ref.current?.scrollWidth ?? 0);
|
||||||
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
setIsTruncated(offsetWidth < scrollWidth);
|
||||||
offsetWidth &&
|
}, [offsetWidth, scrollWidth]);
|
||||||
scrollWidth &&
|
|
||||||
(offsetWidth !== prevOffsetWidth || scrollWidth !== prevScrollWidth)
|
|
||||||
) {
|
|
||||||
prevWidths.current = { offsetWidth, scrollWidth };
|
|
||||||
setIsTruncated(offsetWidth < scrollWidth);
|
|
||||||
}
|
|
||||||
}, [offsetWidth, prevOffsetWidth, prevScrollWidth, scrollWidth]);
|
|
||||||
|
|
||||||
return [ref, isTruncated];
|
return [ref, isTruncated];
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user