
소개
단축키를 들으려면 일반적으로onKeyDown 이벤트 리스너를 사용합니다.
그러나 twenty-front에서는 동일한 시점에 장착된 다른 구성 요소에서 사용되는 같은 단축키 간에 충돌이 발생할 수 있습니다.
예를 들어, Enter 키를 듣는 페이지가 있고, Enter 키를 듣는 모달이 있으며, 그 모달 내에서 Enter 키를 듣는 Select 구성요소가 있다면, 모두 동시에 마운트될 때 충돌이 발생할 수 있습니다.
useScopedHotkeys 훅
이 문제를 해결하기 위해, 우리는 충돌 없이 단축키를 들을 수 있게 하는 커스텀 훅을 만들었습니다.
이를 구성 요소에 배치하면 구성 요소가 마운트될 때 및 지정한 단축키 스코프가 활성화될 때만 단축키를 듣습니다.
How to listen for hotkeys in practice?
단축키 청취를 설정하는 데 두 가지 단계가 있습니다:- 단축키를 들을 단축키 스코프를 설정합니다.
- 단축키를 듣기 위해
useScopedHotkeys훅을 사용합니다.
단축키 사용 사례
일반적으로, 두 가지 단축키를 필요로 하는 사용 사례가 있습니다:- 페이지 또는 페이지에 마운트된 구성 요소
- 사용자 작업으로 인해 포커스를 차지하는 모달 형 구성 요소
페이지에서 단축키 듣기
예시:모달 형 구성 요소에서 단축키 듣기
이 예시에서는 부모에게 모달을 닫으라고 알리기 위해 Escape 키를 듣는 모달 구성 요소를 사용합니다. 여기서 사용자 상호작용은 범위를 변경합니다.단축키 스코프란 무엇인가요?
단축키 스코프는 단축키가 활성 상태인 컨텍스트를 나타내는 문자열입니다. 일반적으로 열거형으로 인코딩됩니다. 단축키 스코프를 변경하면 해당 스코프를 듣고 있는 단축키는 활성화되고 다른 스코프를 듣고 있는 단축키는 비활성화됩니다. 한 번에 하나의 스코프만 설정할 수 있습니다. 예를 들어 각 페이지의 단축키 스코프는PageHotkeyScope 열거형에 정의되어 있습니다: