You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.9 KiB

  1. import React from 'react';
  2. import Column from '../ui/components/column';
  3. import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
  4. import PropTypes from 'prop-types';
  5. import ImmutablePureComponent from 'react-immutable-pure-component';
  6. const messages = defineMessages({
  7. heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' },
  8. });
  9. @injectIntl
  10. export default class KeyboardShortcuts extends ImmutablePureComponent {
  11. static propTypes = {
  12. intl: PropTypes.object.isRequired,
  13. multiColumn: PropTypes.bool,
  14. };
  15. render () {
  16. const { intl } = this.props;
  17. return (
  18. <Column icon='question' heading={intl.formatMessage(messages.heading)} hideHeadingOnMobile>
  19. <div className='keyboard-shortcuts scrollable optionally-scrollable'>
  20. <table>
  21. <thead>
  22. <tr>
  23. <th><FormattedMessage id='keyboard_shortcuts.hotkey' defaultMessage='Hotkey' /></th>
  24. <th><FormattedMessage id='keyboard_shortcuts.description' defaultMessage='Description' /></th>
  25. </tr>
  26. </thead>
  27. <tbody>
  28. <tr>
  29. <td><code>r</code></td>
  30. <td><FormattedMessage id='keyboard_shortcuts.reply' defaultMessage='to reply' /></td>
  31. </tr>
  32. <tr>
  33. <td><code>m</code></td>
  34. <td><FormattedMessage id='keyboard_shortcuts.mention' defaultMessage='to mention author' /></td>
  35. </tr>
  36. <tr>
  37. <td><code>f</code></td>
  38. <td><FormattedMessage id='keyboard_shortcuts.favourite' defaultMessage='to favourite' /></td>
  39. </tr>
  40. <tr>
  41. <td><code>b</code></td>
  42. <td><FormattedMessage id='keyboard_shortcuts.boost' defaultMessage='to boost' /></td>
  43. </tr>
  44. <tr>
  45. <td><code>enter</code></td>
  46. <td><FormattedMessage id='keyboard_shortcuts.enter' defaultMessage='to open status' /></td>
  47. </tr>
  48. <tr>
  49. <td><code>up</code></td>
  50. <td><FormattedMessage id='keyboard_shortcuts.up' defaultMessage='to move up in the list' /></td>
  51. </tr>
  52. <tr>
  53. <td><code>down</code></td>
  54. <td><FormattedMessage id='keyboard_shortcuts.down' defaultMessage='to move down in the list' /></td>
  55. </tr>
  56. <tr>
  57. <td><code>1</code>-<code>9</code></td>
  58. <td><FormattedMessage id='keyboard_shortcuts.column' defaultMessage='to focus a status in one of the columns' /></td>
  59. </tr>
  60. <tr>
  61. <td><code>n</code></td>
  62. <td><FormattedMessage id='keyboard_shortcuts.compose' defaultMessage='to focus the compose textarea' /></td>
  63. </tr>
  64. <tr>
  65. <td><code>alt</code>+<code>n</code></td>
  66. <td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new toot' /></td>
  67. </tr>
  68. <tr>
  69. <td><code>backspace</code></td>
  70. <td><FormattedMessage id='keyboard_shortcuts.back' defaultMessage='to navigate back' /></td>
  71. </tr>
  72. <tr>
  73. <td><code>s</code></td>
  74. <td><FormattedMessage id='keyboard_shortcuts.search' defaultMessage='to focus search' /></td>
  75. </tr>
  76. <tr>
  77. <td><code>esc</code></td>
  78. <td><FormattedMessage id='keyboard_shortcuts.unfocus' defaultMessage='to un-focus compose textarea/search' /></td>
  79. </tr>
  80. <tr>
  81. <td><code>?</code></td>
  82. <td><FormattedMessage id='keyboard_shortcuts.legend' defaultMessage='to display this legend' /></td>
  83. </tr>
  84. </tbody>
  85. </table>
  86. </div>
  87. </Column>
  88. );
  89. }
  90. }