From a40ce78f1139d619824e47a16807659cfee5e9ce Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 27 Jul 2023 16:05:24 +0200 Subject: [PATCH] [Glitch] Add role badges to the WebUI Port 1e4ccc655acb0ac746656bed891d44b3a986384b to glitch-soc Signed-off-by: Claire --- .../features/account/components/header.jsx | 35 +++++++++++++++---- .../flavours/glitch/styles/accounts.scss | 35 ++++++++++++------- .../glitch/styles/components/accounts.scss | 14 +++++--- 3 files changed, 62 insertions(+), 22 deletions(-) diff --git a/app/javascript/flavours/glitch/features/account/components/header.jsx b/app/javascript/flavours/glitch/features/account/components/header.jsx index 913536beb8..6943cbd170 100644 --- a/app/javascript/flavours/glitch/features/account/components/header.jsx +++ b/app/javascript/flavours/glitch/features/account/components/header.jsx @@ -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 = (
); + badges.push( +
+ { ' ' } + +
+ ); } else if (account.get('group')) { - badge = (
); - } else { - badge = null; + badges.push( +
+ { ' ' } + +
+ ); } + account.get('roles', []).forEach((role) => { + badges.push( +
+ { ' ' } + {role.get('name')} ({domain}) +
+ ); + }); + return (
{!(suspended || hidden || account.get('moved')) && account.getIn(['relationship', 'requested_by']) && } @@ -350,13 +367,19 @@ class Header extends ImmutablePureComponent {

- {badge} + @{acct} {lockedIcon}

+ {badges.length > 0 && ( +
+ {badges} +
+ )} + {signedIn && } {!(suspended || hidden) && ( diff --git a/app/javascript/flavours/glitch/styles/accounts.scss b/app/javascript/flavours/glitch/styles/accounts.scss index 97bc9ae2c2..54d0d60a6f 100644 --- a/app/javascript/flavours/glitch/styles/accounts.scss +++ b/app/javascript/flavours/glitch/styles/accounts.scss @@ -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 { diff --git a/app/javascript/flavours/glitch/styles/components/accounts.scss b/app/javascript/flavours/glitch/styles/components/accounts.scss index 52065d031a..21b61ec1c3 100644 --- a/app/javascript/flavours/glitch/styles/components/accounts.scss +++ b/app/javascript/flavours/glitch/styles/components/accounts.scss @@ -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;