about summary refs log tree commit diff
path: root/app/javascript/flavours/glitch/features/account/components
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2018-03-05 11:09:29 +0100
committerThibaut Girka <thib@sitedethib.com>2018-03-09 12:10:22 +0100
commit25c5223617904319f52b455bf0b5c725077ea880 (patch)
tree75dae2e4db7597cba21dfb0e48bfa053bea0f624 /app/javascript/flavours/glitch/features/account/components
parent447d7e612753d69f043e08ebb228b21e411c8b4a (diff)
Port #6627 and #6636 to glitch-soc
Diffstat (limited to 'app/javascript/flavours/glitch/features/account/components')
-rw-r--r--app/javascript/flavours/glitch/features/account/components/header.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/features/account/components/header.js b/app/javascript/flavours/glitch/features/account/components/header.js
index 767e4da47..f346bd108 100644
--- a/app/javascript/flavours/glitch/features/account/components/header.js
+++ b/app/javascript/flavours/glitch/features/account/components/header.js
@@ -15,6 +15,7 @@ const messages = defineMessages({
   unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
   follow: { id: 'account.follow', defaultMessage: 'Follow' },
   requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request' },
+  unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
 });
 
 @injectIntl
@@ -23,6 +24,7 @@ export default class Header extends ImmutablePureComponent {
   static propTypes = {
     account: ImmutablePropTypes.map,
     onFollow: PropTypes.func.isRequired,
+    onBlock: PropTypes.func.isRequired,
     intl: PropTypes.object.isRequired,
   };
 
@@ -35,11 +37,21 @@ export default class Header extends ImmutablePureComponent {
 
     let displayName = account.get('display_name_html');
     let info        = '';
+    let mutingInfo  = '';
     let actionBtn   = '';
 
     if (me !== account.get('id') && account.getIn(['relationship', 'followed_by'])) {
       info = <span className='account--follows-info'><FormattedMessage id='account.follows_you' defaultMessage='Follows you' /></span>;
     }
+    else if (me !== account.get('id') && account.getIn(['relationship', 'blocking'])) {
+      info = <span className='account--follows-info'><FormattedMessage id='account.blocked' defaultMessage='Blocked' /></span>;
+    }
+
+    if (me !== account.get('id') && account.getIn(['relationship', 'muting'])) {
+      mutingInfo = <span className='account--muting-info'><FormattedMessage id='account.muted' defaultMessage='Muted' /></span>;
+    } else if (me !== account.get('id') && account.getIn(['relationship', 'domain_blocking'])) {
+      mutingInfo = <span className='account--muting-info'><FormattedMessage id='account.domain_blocked' defaultMessage='Domain hidden' /></span>;
+    }
 
     if (me !== account.get('id')) {
       if (account.getIn(['relationship', 'requested'])) {
@@ -54,6 +66,12 @@ export default class Header extends ImmutablePureComponent {
             <IconButton size={26} icon={account.getIn(['relationship', 'following']) ? 'user-times' : 'user-plus'} active={account.getIn(['relationship', 'following'])} title={intl.formatMessage(account.getIn(['relationship', 'following']) ? messages.unfollow : messages.follow)} onClick={this.props.onFollow} />
           </div>
         );
+      } else if (account.getIn(['relationship', 'blocking'])) {
+        actionBtn = (
+          <div className='account--action-button'>
+            <IconButton size={26} icon='unlock-alt' title={intl.formatMessage(messages.unblock, { name: account.get('username') })} onClick={this.props.onBlock} />
+          </div>
+        );
       }
     }
 
@@ -78,6 +96,7 @@ export default class Header extends ImmutablePureComponent {
             <div className='account__header__content' dangerouslySetInnerHTML={{ __html: emojify(text) }} />
 
             {info}
+            {mutingInfo}
             {actionBtn}
           </div>
         </div>