about summary refs log tree commit diff
path: root/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2018-10-02 15:48:55 +0200
committerThibG <thib@sitedethib.com>2018-10-02 22:00:57 +0200
commiteb854275764d13c114729fbd0dc083fe3a3bb38c (patch)
treef6614d8600d0237c3c20e65f0a00e179a70859dd /app/javascript/flavours/glitch/features/account_gallery/components/media_item.js
parent35e9d099b3febd75d1613dfc8a494e769a98c3a6 (diff)
[Glitch] Honour displayMedia setting in accountMedia gallery
Inspired by b79ab15859e7f8383526afd147e8416d2df2f7a7
Diffstat (limited to 'app/javascript/flavours/glitch/features/account_gallery/components/media_item.js')
-rw-r--r--app/javascript/flavours/glitch/features/account_gallery/components/media_item.js21
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>
     );