From 325b4a2b4a1dc2fba6a72f0a10dc88b98f57f05c Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 24 Jul 2024 10:40:56 +0200 Subject: [feature] Allow user to set "bot" flag; show bot icon on profile (#3135) * [feature] Allow user to set "bot" flag; show bot icon on profile * tweak * update customs --- web/source/css/profile.css | 49 ++++++++++++++++++++++++------ web/source/settings/components/profile.tsx | 22 ++++++++++++-- web/source/settings/style.css | 30 ++++++++++++------ web/source/settings/views/user/profile.tsx | 15 ++++++--- 4 files changed, 91 insertions(+), 25 deletions(-) (limited to 'web/source') diff --git a/web/source/css/profile.css b/web/source/css/profile.css index 3f7f43d0d..c8a948a49 100644 --- a/web/source/css/profile.css +++ b/web/source/css/profile.css @@ -134,16 +134,47 @@ font-size: 1.5rem; font-weight: bold; } - - .username { - min-width: 0; + + .bot-username-wrapper { + display: flex; + gap: 0.5rem; grid-area: username; - line-height: $username-size; - - font-size: 1rem; - font-weight: bold; - color: $fg-accent; - user-select: all; + align-items: center; + + .bot-legend-wrapper { + display: flex; + gap: 0.25rem; + align-items: center; + + background: $bg; + color: $fg; + + border-radius: $br; + padding: 0.1rem 0.4rem 0.2rem 0.4rem; + + font-variant: small-caps; + font-weight: bold; + + cursor: default; + + .bot-icon { + /* + FA icon is weirdly + aligned so tweak it + */ + margin-top: 0.25rem; + } + } + + .username { + min-width: 0; + line-height: $username-size; + + font-size: 1rem; + font-weight: bold; + color: $fg-accent; + user-select: all; + } } .role { diff --git a/web/source/settings/components/profile.tsx b/web/source/settings/components/profile.tsx index 24cb3c4c2..ee50a6d33 100644 --- a/web/source/settings/components/profile.tsx +++ b/web/source/settings/components/profile.tsx @@ -19,7 +19,7 @@ import React from "react"; -export default function FakeProfile({ avatar, header, display_name, username, role }) { +export default function FakeProfile({ avatar, header, display_name, bot, username, role }) { return ( // Keep in sync with web/template/profile.tmpl
@@ -35,8 +35,24 @@ export default function FakeProfile({ avatar, header, display_name, username, ro
Display name
{display_name.trim().length > 0 ? display_name : username}
-
Username
-
@{username}
+
+ { bot && <> +
Bot account
+
+ true + +
+ } +
Username
+
@{username}
+
Role
{ (role && role.name != "user") ? diff --git a/web/source/settings/style.css b/web/source/settings/style.css index 1cf723754..9650f7466 100644 --- a/web/source/settings/style.css +++ b/web/source/settings/style.css @@ -445,22 +445,34 @@ section.with-sidebar > form { } } - .fields { + .theme, .form-field.radio { display: flex; flex-direction: column; gap: 0.5rem; - - .entry { + } + + fieldset { + margin: 0; + padding: 0.5rem 1rem 1rem 1rem; + max-width: fit-content; + border: 0.1rem solid var(--gray1); + border-radius: 0.1rem; + + >legend { + font-weight: bold; + } + + .fields { display: flex; + flex-direction: column; gap: 0.5rem; + + .entry { + display: flex; + gap: 0.5rem; + } } } - - .theme, .form-field.radio { - display: flex; - flex-direction: column; - gap: 0.5rem; - } } .migration-details { diff --git a/web/source/settings/views/user/profile.tsx b/web/source/settings/views/user/profile.tsx index f4088b353..6d476f80f 100644 --- a/web/source/settings/views/user/profile.tsx +++ b/web/source/settings/views/user/profile.tsx @@ -130,6 +130,7 @@ function UserProfileForm({ data: profile }) { avatar={form.avatar.previewValue ?? profile.avatar} header={form.header.previewValue ?? profile.header} display_name={form.displayName.value ?? profile.username} + bot={profile.bot} username={profile.username} role={profile.role} /> @@ -186,6 +187,10 @@ function UserProfileForm({ data: profile }) { Learn more about these settings (opens in a new tab)
+ - Profile fields - +
+ Profile fields + +

Visibility and privacy

-- cgit v1.2.3