import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import IconButton from '../../icon_button'; import './hotkeys_modal.scss'; const messages = defineMessages({ heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' }, close: { id: 'lightbox.close', defaultMessage: 'Close' }, hotkey: { id: 'keyboard_shortcuts.hotkey', defaultMessage: 'Hotkey' }, reply: { id: 'keyboard_shortcuts.reply', defaultMessage: 'reply' }, mention: { id: 'keyboard_shortcuts.mention', defaultMessage: 'mention author' }, profile: { id: 'keyboard_shortcuts.profile', defaultMessage: 'open author\'s profile' }, favourite: { id: 'keyboard_shortcuts.favourite', defaultMessage: 'favorite' }, boost: { id: 'keyboard_shortcuts.boost', defaultMessage: 'repost' }, enter: { id: 'keyboard_shortcuts.enter', defaultMessage: 'open status' }, toggle_hidden: { id: 'keyboard_shortcuts.toggle_hidden', defaultMessage: 'show/hide text behind CW' }, toggle_sensitivity: { id: 'keyboard_shortcuts.toggle_sensitivity', defaultMessage: 'show/hide media' }, up: { id: 'keyboard_shortcuts.up', defaultMessage: 'move up in the list' }, down: { id: 'keyboard_shortcuts.down', defaultMessage: 'move down in the list' }, column: { id: 'keyboard_shortcuts.column', defaultMessage: 'focus a status in one of the columns' }, compose: { id: 'keyboard_shortcuts.compose', defaultMessage: 'focus the compose textarea' }, gab: { id: 'keyboard_shortcuts.toot', defaultMessage: 'start a brand new gab' }, back: { id: 'keyboard_shortcuts.back', defaultMessage: 'navigate back' }, search: { id: 'keyboard_shortcuts.search', defaultMessage: 'focus search' }, unfocus: { id: 'keyboard_shortcuts.unfocus', defaultMessage: 'un-focus compose textarea/search' }, home: { id: 'keyboard_shortcuts.home', defaultMessage: 'open home timeline' }, notifications: { id: 'keyboard_shortcuts.notifications', defaultMessage: 'open notifications column' }, direct: { id: 'keyboard_shortcuts.direct', defaultMessage: 'open direct messages column' }, start: { id: 'keyboard_shortcuts.start', defaultMessage: 'open "get started" column' }, favourites: { id: 'keyboard_shortcuts.favourites', defaultMessage: 'open favorites list' }, pinned: { id: 'keyboard_shortcuts.pinned', defaultMessage: 'open pinned gabs list' }, my_profile: { id: 'keyboard_shortcuts.my_profile', defaultMessage: 'open your profile' }, blocked: { id: 'keyboard_shortcuts.blocked', defaultMessage: 'open blocked users list' }, muted: { id: 'keyboard_shortcuts.muted', defaultMessage: 'open muted users list' }, requests: { id: 'keyboard_shortcuts.requests', defaultMessage: 'open follow requests list' }, legend: { id: 'keyboard_shortcuts.legend', defaultMessage: 'display this legend' }, }); export default @injectIntl class HotkeysModal extends ImmutablePureComponent { static propTypes = { intl: PropTypes.object.isRequired, onClose: PropTypes.func.isRequired, }; render () { const { intl, onClose } = this.props; return (

{intl.formatMessage(messages.heading)}

{intl.formatMessage(messages.hotkey)}
r {intl.formatMessage(messages.reply)}
m {intl.formatMessage(messages.mention)}
p {intl.formatMessage(messages.profile)}
f {intl.formatMessage(messages.favourite)}
b {intl.formatMessage(messages.boost)}
enter, o {intl.formatMessage(messages.enter)}
x {intl.formatMessage(messages.toggle_hidden)}
h {intl.formatMessage(messages.toggle_sensitivity)}
up, k {intl.formatMessage(messages.up)}
{intl.formatMessage(messages.hotkey)}
down, j {intl.formatMessage(messages.down)}
1 - 9 {intl.formatMessage(messages.column)}
n {intl.formatMessage(messages.compose)}
alt + n {intl.formatMessage(messages.gab)}
backspace {intl.formatMessage(messages.back)}
s {intl.formatMessage(messages.search)}
esc {intl.formatMessage(messages.unfocus)}
g + h {intl.formatMessage(messages.home)}
g + n {intl.formatMessage(messages.notifications)}
g + d {intl.formatMessage(messages.direct)}
{intl.formatMessage(messages.hotkey)}
g + s {intl.formatMessage(messages.start)}
g + f {intl.formatMessage(messages.favourites)}
g + p {intl.formatMessage(messages.pinned)}
g + u {intl.formatMessage(messages.my_profile)}
g + b {intl.formatMessage(messages.blocked)}
g + m {intl.formatMessage(messages.muted)}
g + r {intl.formatMessage(messages.requests)}
? {intl.formatMessage(messages.legend)}
); } }