[Glitch] Add hotkey for opening media files
Port a690b3e470 to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
			
			
This commit is contained in:
		
							parent
							
								
									949b37faba
								
							
						
					
					
						commit
						776352d329
					
				|  | @ -376,6 +376,22 @@ class Status extends ImmutablePureComponent { | |||
|     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.props.status, this.context.router.history); | ||||
|  | @ -503,6 +519,7 @@ class Status extends ImmutablePureComponent { | |||
|       bookmark: this.handleHotkeyBookmark, | ||||
|       toggleCollapse: this.handleHotkeyCollapse, | ||||
|       toggleSensitive: this.handleHotkeyToggleSensitive, | ||||
|       openMedia: this.handleHotkeyOpenMedia, | ||||
|     }; | ||||
| 
 | ||||
|     if (hidden) { | ||||
|  |  | |||
|  | @ -67,6 +67,10 @@ class KeyboardShortcuts extends ImmutablePureComponent { | |||
|                 <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> | ||||
|  |  | |||
|  | @ -320,6 +320,22 @@ class Status extends ImmutablePureComponent { | |||
|     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)); | ||||
|   } | ||||
|  | @ -529,6 +545,7 @@ class Status extends ImmutablePureComponent { | |||
|       openProfile: this.handleHotkeyOpenProfile, | ||||
|       toggleSpoiler: this.handleExpandedToggle, | ||||
|       toggleSensitive: this.handleHotkeyToggleSensitive, | ||||
|       openMedia: this.handleHotkeyOpenMedia, | ||||
|     }; | ||||
| 
 | ||||
|     return ( | ||||
|  |  | |||
|  | @ -107,6 +107,7 @@ const keyMap = { | |||
|   bookmark: 'd', | ||||
|   toggleCollapse: 'shift+x', | ||||
|   toggleSensitive: 'h', | ||||
|   openMedia: 'e', | ||||
| }; | ||||
| 
 | ||||
| class SwitchingColumnsArea extends React.PureComponent { | ||||
|  |  | |||
|  | @ -488,7 +488,7 @@ class Video 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}> | ||||
|                   | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue