Skip to content

Commit 54a4ebb

Browse files
committed
Hide tooltip on escape and stop escape from further action
1 parent f1cc092 commit 54a4ebb

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

app/src/ui/lib/tooltip.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,13 @@ export class Tooltip<T extends TooltipTarget> extends React.Component<
377377
}
378378
}
379379

380+
private onKeyDown = (event: KeyboardEvent) => {
381+
if (event.key === 'Escape' && this.state.show) {
382+
event.preventDefault()
383+
this.beginHideTooltip()
384+
}
385+
}
386+
380387
private installTooltip(elem: TooltipTarget) {
381388
elem.addEventListener('mouseenter', this.onTargetMouseEnter)
382389
elem.addEventListener('mouseleave', this.onTargetMouseLeave)
@@ -389,6 +396,7 @@ export class Tooltip<T extends TooltipTarget> extends React.Component<
389396
elem.addEventListener('tooltip-shown', this.onTooltipShown)
390397
elem.addEventListener('tooltip-hidden', this.onTooltipHidden)
391398
elem.addEventListener('click', this.onTargetClick)
399+
elem.addEventListener('keydown', this.onKeyDown)
392400
}
393401

394402
private removeTooltip(prevTarget: TooltipTarget | null) {
@@ -405,6 +413,7 @@ export class Tooltip<T extends TooltipTarget> extends React.Component<
405413
prevTarget.removeEventListener('focusout', this.onTargetBlur)
406414
prevTarget.removeEventListener('blur', this.onTargetBlur)
407415
prevTarget.removeEventListener('click', this.onTargetClick)
416+
prevTarget.removeEventListener('keydown', this.onKeyDown)
408417
}
409418
}
410419

0 commit comments

Comments
 (0)