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, ]