From b3f6888683f3d52d652a15857545545f10ae897e Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Tue, 17 May 2022 23:36:05 +0530 Subject: [PATCH] revert: "fix: popover closing on delete dialog" (#1030) --- .../AttachedFilesPopover/AttachedFilesButton.tsx | 2 +- app/assets/javascripts/Hooks/useCloseOnBlur.ts | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/Components/AttachedFilesPopover/AttachedFilesButton.tsx b/app/assets/javascripts/Components/AttachedFilesPopover/AttachedFilesButton.tsx index 164fdf0a1..988dd2b6a 100644 --- a/app/assets/javascripts/Components/AttachedFilesPopover/AttachedFilesButton.tsx +++ b/app/assets/javascripts/Components/AttachedFilesPopover/AttachedFilesButton.tsx @@ -43,7 +43,7 @@ export const AttachedFilesButton: FunctionComponent = observer( const buttonRef = useRef(null) const panelRef = useRef(null) const containerRef = useRef(null) - const [closeOnBlur, keepMenuOpen] = useCloseOnBlur(containerRef, setOpen, true) + const [closeOnBlur, keepMenuOpen] = useCloseOnBlur(containerRef, setOpen) useEffect(() => { if (appState.filePreviewModal.isOpen) { diff --git a/app/assets/javascripts/Hooks/useCloseOnBlur.ts b/app/assets/javascripts/Hooks/useCloseOnBlur.ts index 9655a930c..0396859c5 100644 --- a/app/assets/javascripts/Hooks/useCloseOnBlur.ts +++ b/app/assets/javascripts/Hooks/useCloseOnBlur.ts @@ -8,20 +8,16 @@ import { StateUpdater, useCallback, useState } from 'preact/hooks' export function useCloseOnBlur( container: { current?: HTMLDivElement | null }, setOpen: (open: boolean) => void, - keepOpenOnDialogs = false, ): [(event: { relatedTarget: EventTarget | null }) => void, StateUpdater] { const [locked, setLocked] = useState(false) return [ useCallback( function onBlur(event: { relatedTarget: EventTarget | null }) { - setTimeout(() => { - const keepOpen = keepOpenOnDialogs && document.activeElement?.closest('[role="dialog"], .sk-modal') - if (!keepOpen && !locked && !container.current?.contains(event.relatedTarget as Node)) { - setOpen(false) - } - }) + if (!locked && !container.current?.contains(event.relatedTarget as Node)) { + setOpen(false) + } }, - [keepOpenOnDialogs, locked, container, setOpen], + [container, setOpen, locked], ), setLocked, ]