KeyMap.tsx 694 B

123456789101112131415161718192021222324252627282930
  1. /**
  2. * Render keyMap
  3. *
  4. * @param {String} keyMap ex: Command+Enter ; separate key using +
  5. */
  6. const customKeyChars: any = {
  7. command: '⌘',
  8. control: '⌃',
  9. option: '⌥',
  10. enter: '↵',
  11. }
  12. const KeyMap = ({ keyMap }: any) => {
  13. if (!keyMap) return null
  14. const keys = keyMap.split('+')
  15. const keymapRender = keys.map((key: any) => {
  16. let keyChar = key
  17. if (key.toLowerCase() in customKeyChars) keyChar = customKeyChars[key.toLowerCase()]
  18. return (
  19. <span key={key} className={`btn-keymap ${keyChar.length > 1 ? 'px-2' : ''}`}>
  20. {keyChar}
  21. </span>
  22. )
  23. })
  24. return <p className="inline-flex space-x-1.5">{keymapRender}</p>
  25. }
  26. export default KeyMap