diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-10-02 15:48:55 +0200 |
---|---|---|
committer | ThibG <thib@sitedethib.com> | 2018-10-02 22:00:57 +0200 |
commit | eb854275764d13c114729fbd0dc083fe3a3bb38c (patch) | |
tree | f6614d8600d0237c3c20e65f0a00e179a70859dd /app/javascript/flavours/glitch/features | |
parent | 35e9d099b3febd75d1613dfc8a494e769a98c3a6 (diff) |
[Glitch] Honour displayMedia setting in accountMedia gallery
Inspired by b79ab15859e7f8383526afd147e8416d2df2f7a7
Diffstat (limited to 'app/javascript/flavours/glitch/features')
-rw-r--r-- | app/javascript/flavours/glitch/features/account_gallery/components/media_item.js | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js b/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js index c2cf48d7b..2e48ab799 100644 --- a/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js +++ b/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js @@ -2,6 +2,7 @@ import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import Permalink from 'flavours/glitch/components/permalink'; +import { displayMedia } from 'flavours/glitch/util/initial_state'; export default class MediaItem extends ImmutablePureComponent { @@ -9,8 +10,13 @@ export default class MediaItem extends ImmutablePureComponent { media: ImmutablePropTypes.map.isRequired, }; + state = { + visible: displayMedia !== 'hide_all' && !this.props.media.getIn(['status', 'sensitive']) || displayMedia === 'show_all', + }; + render () { const { media } = this.props; + const { visible } = this.state; const status = media.get('status'); const focusX = media.getIn(['meta', 'focus', 'x']); const focusY = media.getIn(['meta', 'focus', 'y']); @@ -18,21 +24,28 @@ export default class MediaItem extends ImmutablePureComponent { const y = ((focusY / -2) + .5) * 100; const style = {}; - let content; + let label, icon; if (media.get('type') === 'gifv') { - content = <span className='media-gallery__gifv__label'>GIF</span>; + label = <span className='media-gallery__gifv__label'>GIF</span>; } - if (!status.get('sensitive')) { + if (visible) { style.backgroundImage = `url(${media.get('preview_url')})`; style.backgroundPosition = `${x}% ${y}%`; + } else { + icon = ( + <span className='account-gallery__item__icons'> + <i className='fa fa-eye-slash' /> + </span> + ); } return ( <div className='account-gallery__item'> <Permalink to={`/statuses/${status.get('id')}`} href={status.get('url')} style={style}> - {content} + {icon} + {label} </Permalink> </div> ); |