this.props.onOpenVideo(media, startTime);
}
+ handleHotkeyOpenMedia = e => {
+ const { status, onOpenMedia, onOpenVideo } = this.props;
+
+ e.preventDefault();
+
+ if (status.get('media_attachments').size > 0) {
+ if (status.getIn(['media_attachments', 0, 'type']) === 'audio') {
+ // TODO: toggle play/paused?
+ } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
+ onOpenVideo(status.getIn(['media_attachments', 0]), 0);
+ } else {
+ onOpenMedia(status.get('media_attachments'), 0);
+ }
+ }
+ }
+
handleHotkeyReply = e => {
e.preventDefault();
this.props.onReply(this._properStatus(), this.context.router.history);
moveDown: this.handleHotkeyMoveDown,
toggleHidden: this.handleHotkeyToggleHidden,
toggleSensitive: this.handleHotkeyToggleSensitive,
+ openMedia: this.handleHotkeyOpenMedia,
};
if (hidden) {
<td><kbd>enter</kbd>, <kbd>o</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.enter' defaultMessage='to open status' /></td>
</tr>
+ <tr>
+ <td><kbd>e</kbd></td>
+ <td><FormattedMessage id='keyboard_shortcuts.open_media' defaultMessage='to open media' /></td>
+ </tr>
<tr>
<td><kbd>x</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.toggle_hidden' defaultMessage='to show/hide text behind CW' /></td>
this.props.dispatch(openModal('VIDEO', { media, time }));
}
+ handleHotkeyOpenMedia = e => {
+ const { status } = this.props;
+
+ e.preventDefault();
+
+ if (status.get('media_attachments').size > 0) {
+ if (status.getIn(['media_attachments', 0, 'type']) === 'audio') {
+ // TODO: toggle play/paused?
+ } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
+ this.handleOpenVideo(status.getIn(['media_attachments', 0]), 0);
+ } else {
+ this.handleOpenMedia(status.get('media_attachments'), 0);
+ }
+ }
+ }
+
handleMuteClick = (account) => {
this.props.dispatch(initMuteModal(account));
}
openProfile: this.handleHotkeyOpenProfile,
toggleHidden: this.handleHotkeyToggleHidden,
toggleSensitive: this.handleHotkeyToggleSensitive,
+ openMedia: this.handleHotkeyOpenMedia,
};
return (
goToRequests: 'g r',
toggleHidden: 'x',
toggleSensitive: 'h',
+ openMedia: 'e',
};
class SwitchingColumnsArea extends React.PureComponent {
<div className='video-player__buttons-bar'>
<div className='video-player__buttons left'>
- <button type='button' aria-label={intl.formatMessage(paused ? messages.play : messages.pause)} onClick={this.togglePlay}><Icon id={paused ? 'play' : 'pause'} fixedWidth /></button>
+ <button type='button' aria-label={intl.formatMessage(paused ? messages.play : messages.pause)} onClick={this.togglePlay} autoFocus={detailed}><Icon id={paused ? 'play' : 'pause'} fixedWidth /></button>
<button type='button' aria-label={intl.formatMessage(muted ? messages.unmute : messages.mute)} onClick={this.toggleMute}><Icon id={muted ? 'volume-off' : 'volume-up'} fixedWidth /></button>
<div className='video-player__volume' onMouseDown={this.handleVolumeMouseDown} ref={this.setVolumeRef}>