
Introdução
Quando você precisa ouvir uma tecla de atalho, normalmente usaria o listener de eventoonKeyDown.
No entanto, em twenty-front, você pode ter conflitos entre as mesmas teclas de atalho que são usadas em diferentes componentes, montados ao mesmo tempo.
Por exemplo, se você tem uma página que escuta a tecla Enter, e um modal que escuta a tecla Enter, com um componente Select dentro desse modal que escuta a tecla Enter, você pode ter um conflito quando todos são montados ao mesmo tempo.
O hook useScopedHotkeys
Para lidar com esse problema, temos um hook personalizado que permite ouvir as teclas de atalho sem qualquer conflito.
Você o coloca em um componente, e ele ouvirá as teclas de atalho somente quando o componente estiver montado E quando o escopo da tecla de atalho especificado estiver ativo.
Como ouvir teclas de atalho na prática?
Há dois passos envolvidos na configuração da escuta de teclas de atalho :- Defina o escopo da tecla de atalho que ouvirá as teclas de atalho
- Use o hook
useScopedHotkeyspara ouvir as teclas de atalho
Casos de uso para teclas de atalho
Em geral, você terá dois casos de uso que requerem teclas de atalho :- Em uma página ou um componente montado em uma página
- Em um componente do tipo modal que assume o foco devido a uma ação do usuário
Ouvindo teclas de atalho em uma página
Exemplo :Ouvindo teclas de atalho em um componente do tipo modal
Neste exemplo, usaremos um componente modal que ouve a tecla Escape para informar ao pai que feche. Aqui, a interação do usuário está mudando o escopo.O que é um escopo de tecla de atalho?
Um escopo de tecla de atalho é uma string que representa um contexto no qual as teclas de atalho estão ativas. Geralmente é codificado como um enum. Quando você altera o escopo da tecla de atalho, as teclas associadas a esse escopo serão ativadas e as teclas associadas a outros escopos serão desativadas. Você pode definir apenas um escopo por vez. Como exemplo, os escopos de tecla de atalho para cada página são definidos no enumPageHotkeyScope: