From 654c4c867cb93c99fdefdaf7f9db3e124187bc53 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Fri, 10 May 2024 12:56:03 -0700
Subject: [PATCH] Remove ngbdropdown keyboard events workaround
---
.../global-search/global-search.component.html | 3 ++-
.../global-search.component.spec.ts | 7 -------
.../global-search/global-search.component.ts | 18 +++++-------------
3 files changed, 7 insertions(+), 21 deletions(-)
diff --git a/src-ui/src/app/components/app-frame/global-search/global-search.component.html b/src-ui/src/app/components/app-frame/global-search/global-search.component.html
index 1772132a4..eeb118967 100644
--- a/src-ui/src/app/components/app-frame/global-search/global-search.component.html
+++ b/src-ui/src/app/components/app-frame/global-search/global-search.component.html
@@ -10,7 +10,8 @@
spellcheck="false"
[(ngModel)]="query"
(ngModelChange)="this.queryDebounce.next($event)"
- (keydown)="searchInputKeyDown($event)">
+ (keydown)="searchInputKeyDown($event)"
+ ngbDropdownAnchor>
@if (loading) {
diff --git a/src-ui/src/app/components/app-frame/global-search/global-search.component.spec.ts b/src-ui/src/app/components/app-frame/global-search/global-search.component.spec.ts
index 3709cc002..bf207c75f 100644
--- a/src-ui/src/app/components/app-frame/global-search/global-search.component.spec.ts
+++ b/src-ui/src/app/components/app-frame/global-search/global-search.component.spec.ts
@@ -475,13 +475,6 @@ describe('GlobalSearchComponent', () => {
expect(focusSpy).toHaveBeenCalled()
})
- it('should prevent event propagation for keyboard events on buttons that are not arrows', () => {
- const event = { stopImmediatePropagation: jest.fn(), key: 'Enter' }
- const stopPropagationSpy = jest.spyOn(event, 'stopImmediatePropagation')
- component.onButtonKeyDown(event as any)
- expect(stopPropagationSpy).toHaveBeenCalled()
- })
-
it('should support explicit advanced search', () => {
const qfSpy = jest.spyOn(documentListViewService, 'quickFilter')
component.query = 'test'
diff --git a/src-ui/src/app/components/app-frame/global-search/global-search.component.ts b/src-ui/src/app/components/app-frame/global-search/global-search.component.ts
index 5a3106625..b10cf7f71 100644
--- a/src-ui/src/app/components/app-frame/global-search/global-search.component.ts
+++ b/src-ui/src/app/components/app-frame/global-search/global-search.component.ts
@@ -88,7 +88,7 @@ export class GlobalSearchComponent implements OnInit {
})
}
- ngOnInit() {
+ public ngOnInit() {
this.hotkeyService
.addShortcut({ keys: '/', description: $localize`Global search` })
.subscribe(() => {
@@ -241,7 +241,7 @@ export class GlobalSearchComponent implements OnInit {
item.nativeElement.focus()
}
- onItemHover(event: MouseEvent) {
+ public onItemHover(event: MouseEvent) {
const item: ElementRef = this.resultItems
.toArray()
.find((item) => item.nativeElement === event.currentTarget)
@@ -249,7 +249,7 @@ export class GlobalSearchComponent implements OnInit {
this.setCurrentItem()
}
- onButtonHover(event: MouseEvent) {
+ public onButtonHover(event: MouseEvent) {
;(event.currentTarget as HTMLElement).focus()
}
@@ -289,7 +289,7 @@ export class GlobalSearchComponent implements OnInit {
}
}
- dropdownKeyDown(event: KeyboardEvent) {
+ public dropdownKeyDown(event: KeyboardEvent) {
if (
this.searchResults?.total &&
this.resultsDropdown.isOpen() &&
@@ -332,18 +332,10 @@ export class GlobalSearchComponent implements OnInit {
}
}
- onButtonKeyDown(event: KeyboardEvent) {
+ public onButtonKeyDown(event: KeyboardEvent) {
if (event.key === 'Enter' && (event.metaKey || event.ctrlKey)) {
event.target.dispatchEvent(new MouseEvent('click', { ctrlKey: true }))
}
- // prevents ngBootstrap issue with keydown events
- if (
- !['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Escape'].includes(
- event.key
- )
- ) {
- event.stopImmediatePropagation()
- }
}
public onDropdownOpenChange(open: boolean) {