Allow the media modal to be closed by pressing back (#7934)
This commit is contained in:
		
							parent
							
								
									6d45f768a6
								
							
						
					
					
						commit
						bbbe3ed6ba
					
				
					 1 changed files with 16 additions and 0 deletions
				
			
		|  | @ -16,6 +16,8 @@ const messages = defineMessages({ | |||
|   next: { id: 'lightbox.next', defaultMessage: 'Next' }, | ||||
| }); | ||||
| 
 | ||||
| const previewState = 'previewMediaModal'; | ||||
| 
 | ||||
| @injectIntl | ||||
| export default class MediaModal extends ImmutablePureComponent { | ||||
| 
 | ||||
|  | @ -26,6 +28,10 @@ export default class MediaModal extends ImmutablePureComponent { | |||
|     intl: PropTypes.object.isRequired, | ||||
|   }; | ||||
| 
 | ||||
|   static contextTypes = { | ||||
|     router: PropTypes.object, | ||||
|   }; | ||||
| 
 | ||||
|   state = { | ||||
|     index: null, | ||||
|     navigationHidden: false, | ||||
|  | @ -61,10 +67,20 @@ export default class MediaModal extends ImmutablePureComponent { | |||
| 
 | ||||
|   componentDidMount () { | ||||
|     window.addEventListener('keyup', this.handleKeyUp, false); | ||||
|     const history = this.context.router.history; | ||||
|     history.push(history.location.pathname, previewState); | ||||
|     this.unlistenHistory = history.listen(() => { | ||||
|       this.props.onClose(); | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     window.removeEventListener('keyup', this.handleKeyUp); | ||||
|     this.unlistenHistory(); | ||||
| 
 | ||||
|     if (this.context.router.history.location.state === previewState) { | ||||
|       this.context.router.history.goBack(); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   getIndex () { | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue