Allow to open a modal for embedded photo (#5777)
This commit is contained in:
		
					parent
					
						
							
								1266c66f79
							
						
					
				
			
			
				commit
				
					
						bf7757cbbc
					
				
			
		
					 5 changed files with 41 additions and 14 deletions
				
			
		|  | @ -1,5 +1,6 @@ | |||
| import React from 'react'; | ||||
| import PropTypes from 'prop-types'; | ||||
| import Immutable from 'immutable'; | ||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||
| import punycode from 'punycode'; | ||||
| import classnames from 'classnames'; | ||||
|  | @ -24,6 +25,7 @@ export default class Card extends React.PureComponent { | |||
|   static propTypes = { | ||||
|     card: ImmutablePropTypes.map, | ||||
|     maxDescription: PropTypes.number, | ||||
|     onOpenMedia: PropTypes.func.isRequired, | ||||
|   }; | ||||
| 
 | ||||
|   static defaultProps = { | ||||
|  | @ -34,6 +36,27 @@ export default class Card extends React.PureComponent { | |||
|     width: 0, | ||||
|   }; | ||||
| 
 | ||||
|   handlePhotoClick = () => { | ||||
|     const { card, onOpenMedia } = this.props; | ||||
| 
 | ||||
|     onOpenMedia( | ||||
|       Immutable.fromJS([ | ||||
|         { | ||||
|           type: 'image', | ||||
|           url: card.get('url'), | ||||
|           description: card.get('title'), | ||||
|           meta: { | ||||
|             original: { | ||||
|               width: card.get('width'), | ||||
|               height: card.get('height'), | ||||
|             }, | ||||
|           }, | ||||
|         }, | ||||
|       ]), | ||||
|       0 | ||||
|     ); | ||||
|   }; | ||||
| 
 | ||||
|   renderLink () { | ||||
|     const { card, maxDescription } = this.props; | ||||
| 
 | ||||
|  | @ -73,9 +96,16 @@ export default class Card extends React.PureComponent { | |||
|     const { card } = this.props; | ||||
| 
 | ||||
|     return ( | ||||
|       <a href={card.get('url')} className='status-card-photo' target='_blank' rel='noopener'> | ||||
|         <img src={card.get('url')} alt={card.get('title')} width={card.get('width')} height={card.get('height')} /> | ||||
|       </a> | ||||
|       <img | ||||
|         className='status-card-photo' | ||||
|         onClick={this.handlePhotoClick} | ||||
|         role='button' | ||||
|         tabIndex='0' | ||||
|         src={card.get('url')} | ||||
|         alt={card.get('title')} | ||||
|         width={card.get('width')} | ||||
|         height={card.get('height')} | ||||
|       /> | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue