[Glitch] Add role badges to the WebUI
Port 1e4ccc655a to glitch-soc
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
			
			
This commit is contained in:
		
							parent
							
								
									a25e03dbc3
								
							
						
					
					
						commit
						a40ce78f11
					
				| 
						 | 
				
			
			@ -308,16 +308,33 @@ class Header extends ImmutablePureComponent {
 | 
			
		|||
    const acct            = isLocal && domain ? `${account.get('acct')}@${domain}` : account.get('acct');
 | 
			
		||||
    const isIndexable     = !account.get('noindex');
 | 
			
		||||
 | 
			
		||||
    let badge;
 | 
			
		||||
    const badges = [];
 | 
			
		||||
 | 
			
		||||
    if (account.get('bot')) {
 | 
			
		||||
      badge = (<div className='account-role bot'><FormattedMessage id='account.badges.bot' defaultMessage='Automated' /></div>);
 | 
			
		||||
      badges.push(
 | 
			
		||||
        <div key='bot-badge' className='account-role bot'>
 | 
			
		||||
          <Icon id='cogs' /> { ' ' }
 | 
			
		||||
          <FormattedMessage id='account.badges.bot' defaultMessage='Automated' />
 | 
			
		||||
        </div>
 | 
			
		||||
      );
 | 
			
		||||
    } else if (account.get('group')) {
 | 
			
		||||
      badge = (<div className='account-role group'><FormattedMessage id='account.badges.group' defaultMessage='Group' /></div>);
 | 
			
		||||
    } else {
 | 
			
		||||
      badge = null;
 | 
			
		||||
      badges.push(
 | 
			
		||||
        <div key='group-badge' className='account-role group'>
 | 
			
		||||
          <Icon id='users' /> { ' ' }
 | 
			
		||||
          <FormattedMessage id='account.badges.group' defaultMessage='Group' />
 | 
			
		||||
        </div>
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    account.get('roles', []).forEach((role) => {
 | 
			
		||||
      badges.push(
 | 
			
		||||
        <div key={`role-badge-${role.get('id')}`} className={`account-role user-role-${account.getIn(['roles', 0, 'id'])}`}>
 | 
			
		||||
          <Icon id='circle' /> { ' ' }
 | 
			
		||||
          <span>{role.get('name')} ({domain})</span>
 | 
			
		||||
        </div>
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
      <div className={classNames('account__header', { inactive: !!account.get('moved') })} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>
 | 
			
		||||
        {!(suspended || hidden || account.get('moved')) && account.getIn(['relationship', 'requested_by']) && <FollowRequestNoteContainer account={account} />}
 | 
			
		||||
| 
						 | 
				
			
			@ -350,13 +367,19 @@ class Header extends ImmutablePureComponent {
 | 
			
		|||
 | 
			
		||||
          <div className='account__header__tabs__name'>
 | 
			
		||||
            <h1>
 | 
			
		||||
              <span dangerouslySetInnerHTML={displayNameHtml} /> {badge}
 | 
			
		||||
              <span dangerouslySetInnerHTML={displayNameHtml} />
 | 
			
		||||
              <small>
 | 
			
		||||
                <span>@{acct}</span> {lockedIcon}
 | 
			
		||||
              </small>
 | 
			
		||||
            </h1>
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          {badges.length > 0 && (
 | 
			
		||||
            <div className='account__header__badges'>
 | 
			
		||||
              {badges}
 | 
			
		||||
            </div>
 | 
			
		||||
          )}
 | 
			
		||||
 | 
			
		||||
          {signedIn && <AccountNoteContainer account={account} />}
 | 
			
		||||
 | 
			
		||||
          {!(suspended || hidden) && (
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -200,25 +200,36 @@
 | 
			
		|||
  display: inline-block;
 | 
			
		||||
  padding: 4px 6px;
 | 
			
		||||
  cursor: default;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  line-height: 12px;
 | 
			
		||||
  font-weight: 500;
 | 
			
		||||
  color: var(--user-role-accent, $ui-secondary-color);
 | 
			
		||||
  background-color: var(--user-role-background, rgba($ui-secondary-color, 0.1));
 | 
			
		||||
  border: 1px solid var(--user-role-border, rgba($ui-secondary-color, 0.5));
 | 
			
		||||
  color: $ui-secondary-color;
 | 
			
		||||
  text-overflow: ellipsis;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  &.moderator {
 | 
			
		||||
    color: $success-green;
 | 
			
		||||
.information-badge,
 | 
			
		||||
.simple_form .recommended,
 | 
			
		||||
.simple_form .not_recommended {
 | 
			
		||||
  background-color: rgba($ui-secondary-color, 0.1);
 | 
			
		||||
  border: 1px solid rgba($ui-secondary-color, 0.5);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.account-role {
 | 
			
		||||
  border: 1px solid $highlight-text-color;
 | 
			
		||||
 | 
			
		||||
  .fa {
 | 
			
		||||
    color: var(--user-role-accent, $highlight-text-color);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.information-badge {
 | 
			
		||||
  &.superapp {
 | 
			
		||||
    background-color: rgba($success-green, 0.1);
 | 
			
		||||
    border-color: rgba($success-green, 0.5);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &.admin {
 | 
			
		||||
    color: lighten($error-red, 12%);
 | 
			
		||||
    background-color: rgba(lighten($error-red, 12%), 0.1);
 | 
			
		||||
    border-color: rgba(lighten($error-red, 12%), 0.5);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.simple_form .not_recommended {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -534,6 +534,16 @@
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &__badges {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-wrap: wrap;
 | 
			
		||||
    gap: 8px;
 | 
			
		||||
 | 
			
		||||
    .account-role {
 | 
			
		||||
      line-height: unset;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &__tabs {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: flex-start;
 | 
			
		||||
| 
						 | 
				
			
			@ -571,10 +581,6 @@
 | 
			
		|||
    &__name {
 | 
			
		||||
      padding: 5px 10px;
 | 
			
		||||
 | 
			
		||||
      .account-role {
 | 
			
		||||
        vertical-align: top;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .emojione {
 | 
			
		||||
        width: 22px;
 | 
			
		||||
        height: 22px;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue