diff options
author | David Yip <yipdw@member.fsf.org> | 2018-04-12 00:20:19 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-12 00:20:19 -0500 |
commit | 0b326950bf8d38fd7c98a71d6bc1c93067c8ceb5 (patch) | |
tree | 744801a0a80321ea57de6fc7821904a2af9eec01 /app/javascript/flavours/glitch/features/status/components/card.js | |
parent | 763cda91a83dd7e3eea7afb2dbe1ff149d849b87 (diff) | |
parent | 9073687f66a8e82d19a56ec85eef2c27f63412dc (diff) |
Merge pull request #416 from ThibG/glitch-soc/features/media-modal
Port various media modal improvements to glitch-soc
Diffstat (limited to 'app/javascript/flavours/glitch/features/status/components/card.js')
-rw-r--r-- | app/javascript/flavours/glitch/features/status/components/card.js | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/app/javascript/flavours/glitch/features/status/components/card.js b/app/javascript/flavours/glitch/features/status/components/card.js index bb83374b9..680bf63ab 100644 --- a/app/javascript/flavours/glitch/features/status/components/card.js +++ b/app/javascript/flavours/glitch/features/status/components/card.js @@ -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')} + /> ); } |