[ENG-1118] Force close context menu when no items are selected (#1407)

* close context menu if no items are selected

* fix

* Update index.tsx

* ups

* one more
This commit is contained in:
nikec 2023-09-29 15:56:29 +02:00 committed by GitHub
parent ed9eb79222
commit 95ea93595d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 4 deletions

View file

@ -43,7 +43,13 @@ export interface ExplorerViewPadding {
export interface ExplorerViewProps
extends Omit<
ExplorerViewContext,
'selectable' | 'isRenaming' | 'setIsRenaming' | 'setIsContextMenuOpen' | 'ref' | 'padding'
| 'selectable'
| 'isRenaming'
| 'isContextMenuOpen'
| 'setIsRenaming'
| 'setIsContextMenuOpen'
| 'ref'
| 'padding'
> {
className?: string;
style?: React.CSSProperties;
@ -75,6 +81,12 @@ export default memo(
disabled: isRenaming || quickPreviewStore.open
});
useEffect(() => {
if (!isContextMenuOpen || explorer.selectedItems.size !== 0) return;
// Close context menu when no items are selected
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
}, [explorer.selectedItems, isContextMenuOpen]);
useEffect(() => {
if (explorer.isFetchingNextPage) {
const timer = setTimeout(() => setShowLoading(true), 100);
@ -108,10 +120,11 @@ export default memo(
!isContextMenuOpen &&
!isRenaming &&
(!quickPreviewStore.open || explorer.selectedItems.size === 1),
setIsContextMenuOpen,
isRenaming,
setIsRenaming,
ref,
isRenaming,
isContextMenuOpen,
setIsRenaming,
setIsContextMenuOpen,
padding: viewPadding
}}
>

View file

@ -7,6 +7,7 @@ export interface ExplorerViewContext {
top?: number;
bottom?: number;
contextMenu?: ReactNode;
isContextMenuOpen?: boolean;
setIsContextMenuOpen?: (isOpen: boolean) => void;
isRenaming: boolean;
setIsRenaming: (isRenaming: boolean) => void;