From 1092c8ae28d54b63cf97dc85b396266819a108f1 Mon Sep 17 00:00:00 2001 From: Maciej Rybaniec Date: Fri, 30 Oct 2020 10:58:39 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20prevent=20memory=20leak?= =?UTF-8?q?=20during=20component=20unmount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/components/ActionsMenu/ActionsMenu.tsx | 18 +++++++++++++++--- .../BrowserQueryMenu/BrowserQueryMenu.tsx | 1 + .../EditorNavigation/EditorNavigation.tsx | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/js/app/components/ActionsMenu/ActionsMenu.tsx b/lib/js/app/components/ActionsMenu/ActionsMenu.tsx index 445700074..784135b19 100644 --- a/lib/js/app/components/ActionsMenu/ActionsMenu.tsx +++ b/lib/js/app/components/ActionsMenu/ActionsMenu.tsx @@ -35,9 +35,16 @@ type Props = { onRemoveQuery: () => void; /** Hide menu */ onHideMenu: () => void; + /** Visibility indicator */ + isVisible?: boolean; }; -const ActionsMenu: FC = ({ isNewQuery, onRemoveQuery, onHideMenu }) => { +const ActionsMenu: FC = ({ + isNewQuery, + isVisible, + onRemoveQuery, + onHideMenu, +}) => { const dispatch = useDispatch(); const { t } = useTranslation(); @@ -46,13 +53,18 @@ const ActionsMenu: FC = ({ isNewQuery, onRemoveQuery, onHideMenu }) => { const { keenAnalysis: { config }, } = useContext(AppContext); + return ( {t('actions_menu.export_result')} !queryResults && showTooltip(true)} - onMouseLeave={() => tooltip && showTooltip(false)} + onMouseEnter={() => { + if (isVisible && !queryResults) { + showTooltip(true); + } + }} + onMouseLeave={() => tooltip && isVisible && showTooltip(false)} > {tooltip && ( diff --git a/lib/js/app/components/BrowserQueryMenu/BrowserQueryMenu.tsx b/lib/js/app/components/BrowserQueryMenu/BrowserQueryMenu.tsx index 268ed84cc..be7c3625b 100644 --- a/lib/js/app/components/BrowserQueryMenu/BrowserQueryMenu.tsx +++ b/lib/js/app/components/BrowserQueryMenu/BrowserQueryMenu.tsx @@ -120,6 +120,7 @@ const BrowserQueryMenu: FC = ({ onEditQuery, onRemoveQuery }) => { > setActionsMenuVisibility(false)} onRemoveQuery={() => { setActionsMenuVisibility(false); diff --git a/lib/js/app/components/EditorNavigation/EditorNavigation.tsx b/lib/js/app/components/EditorNavigation/EditorNavigation.tsx index 1156cd61f..743feed86 100644 --- a/lib/js/app/components/EditorNavigation/EditorNavigation.tsx +++ b/lib/js/app/components/EditorNavigation/EditorNavigation.tsx @@ -180,6 +180,7 @@ const EditorNavigation: FC = ({ onSaveQuery }) => { > setActionsMenuVisibility(false)} onRemoveQuery={() => { setActionsMenuVisibility(false);