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) {