From 10e5f9d10c99f06553d280adfeaab474349be109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 21 Dec 2021 11:54:02 +0100 Subject: [PATCH] Do not `setState` when unmounted in `OverflowTooltip` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/smooth-news-melt.md | 5 +++++ .../src/components/OverflowTooltip/OverflowTooltip.tsx | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/smooth-news-melt.md diff --git a/.changeset/smooth-news-melt.md b/.changeset/smooth-news-melt.md new file mode 100644 index 0000000000000..deb745a46a188 --- /dev/null +++ b/.changeset/smooth-news-melt.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Do not `setState` when unmounted in `OverflowTooltip` diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx index fb21813f8905c..d0aebb4462ffc 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx @@ -18,6 +18,7 @@ import { makeStyles } from '@material-ui/core/styles'; import Tooltip, { TooltipProps } from '@material-ui/core/Tooltip'; import React, { useState } from 'react'; import TextTruncate, { TextTruncateProps } from 'react-text-truncate'; +import { useMountedState } from 'react-use'; type Props = { text: TextTruncateProps['text']; @@ -40,10 +41,13 @@ const useStyles = makeStyles( export function OverflowTooltip(props: Props) { const [hover, setHover] = useState(false); + const isMounted = useMountedState(); const classes = useStyles(); const handleToggled = (truncated: boolean) => { - setHover(truncated); + if (isMounted()) { + setHover(truncated); + } }; return (