mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-27 14:59:57 +00:00
Merge pull request #8842 from Clem-Fern/fix#8839
This commit is contained in:
commit
34786b1459
@ -29,11 +29,14 @@ export class SelectorModalComponent<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@HostListener('keydown', ['$event']) onKeyUp (event: KeyboardEvent): void {
|
@HostListener('keydown', ['$event']) onKeyUp (event: KeyboardEvent): void {
|
||||||
|
if (event.key === 'Escape') {
|
||||||
|
this.close()
|
||||||
|
} else if (this.filteredOptions.length > 0) {
|
||||||
if (event.key === 'PageUp' || event.key === 'ArrowUp' && event.metaKey) {
|
if (event.key === 'PageUp' || event.key === 'ArrowUp' && event.metaKey) {
|
||||||
this.selectedIndex -= 10
|
this.selectedIndex -= Math.min(10, Math.max(1, this.selectedIndex))
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
} else if (event.key === 'PageDown' || event.key === 'ArrowDown' && event.metaKey) {
|
} else if (event.key === 'PageDown' || event.key === 'ArrowDown' && event.metaKey) {
|
||||||
this.selectedIndex += 10
|
this.selectedIndex += Math.min(10, Math.max(1, this.filteredOptions.length - this.selectedIndex - 1))
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
} else if (event.key === 'ArrowUp') {
|
} else if (event.key === 'ArrowUp') {
|
||||||
this.selectedIndex--
|
this.selectedIndex--
|
||||||
@ -43,21 +46,20 @@ export class SelectorModalComponent<T> {
|
|||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
} else if (event.key === 'Enter') {
|
} else if (event.key === 'Enter') {
|
||||||
this.selectOption(this.filteredOptions[this.selectedIndex])
|
this.selectOption(this.filteredOptions[this.selectedIndex])
|
||||||
} else if (event.key === 'Escape') {
|
} else if (event.key === 'Backspace' && this.canEditSelected()) {
|
||||||
this.close()
|
|
||||||
}
|
|
||||||
if (event.key === 'Backspace' && this.canEditSelected()) {
|
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
this.filter = this.filteredOptions[this.selectedIndex].freeInputEquivalent!
|
this.filter = this.filteredOptions[this.selectedIndex].freeInputEquivalent!
|
||||||
this.onFilterChange()
|
this.onFilterChange()
|
||||||
}
|
}
|
||||||
|
|
||||||
this.selectedIndex = (this.selectedIndex + this.filteredOptions.length) % this.filteredOptions.length
|
this.selectedIndex = (this.selectedIndex + this.filteredOptions.length) % this.filteredOptions.length
|
||||||
|
|
||||||
Array.from(this.itemChildren)[this.selectedIndex]?.nativeElement.scrollIntoView({
|
Array.from(this.itemChildren)[this.selectedIndex]?.nativeElement.scrollIntoView({
|
||||||
behavior: 'smooth',
|
behavior: 'smooth',
|
||||||
block: 'nearest',
|
block: 'nearest',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onFilterChange (): void {
|
onFilterChange (): void {
|
||||||
const f = this.filter.trim().toLowerCase()
|
const f = this.filter.trim().toLowerCase()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user