MCPcopy Index your code
hub / github.com/ionic-team/ionic-framework / onKeyDown

Method onKeyDown

core/src/components/segment/segment.tsx:664–706  ·  view source on GitHub ↗
(ev: KeyboardEvent)

Source from the content-addressed store, hash-verified

662
663 @Listen('keydown')
664 onKeyDown(ev: KeyboardEvent) {
665 const rtl = isRTL(this.el);
666 let keyDownSelectsButton = this.selectOnFocus;
667 let current;
668 switch (ev.key) {
669 case 'ArrowRight':
670 ev.preventDefault();
671 current = rtl ? this.getSegmentButton('previous') : this.getSegmentButton('next');
672 break;
673 case 'ArrowLeft':
674 ev.preventDefault();
675 current = rtl ? this.getSegmentButton('next') : this.getSegmentButton('previous');
676 break;
677 case 'Home':
678 ev.preventDefault();
679 current = this.getSegmentButton('first');
680 break;
681 case 'End':
682 ev.preventDefault();
683 current = this.getSegmentButton('last');
684 break;
685 case ' ':
686 case 'Enter':
687 ev.preventDefault();
688 current = document.activeElement as HTMLIonSegmentButtonElement;
689 keyDownSelectsButton = true;
690 default:
691 break;
692 }
693
694 if (!current) {
695 return;
696 }
697
698 if (keyDownSelectsButton) {
699 const previous = this.checked;
700 this.checkButton(previous || current, current);
701 if (current !== previous) {
702 this.emitValueChange();
703 }
704 }
705 current.setFocus();
706 }
707
708 render() {
709 const mode = getIonMode(this);

Callers 2

renderMethod · 0.80
renderMethod · 0.80

Calls 4

checkButtonMethod · 0.95
emitValueChangeMethod · 0.95
isRTLFunction · 0.90
setFocusMethod · 0.45

Tested by

no test coverage detected