From 2f40549d41d77bd4941214e1915074d2e9113b80 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Fri, 21 Aug 2026 13:50:27 +0000 Subject: [PATCH] Redesign: Add admin/moderation links, fix relationships link (#40244) --- .../mastodon/components/menu/items.tsx | 8 ++++ .../account_card_and_menu.module.scss | 1 + .../redesign/account_card_and_menu.tsx | 44 ++++++++++++++++--- 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/app/javascript/mastodon/components/menu/items.tsx b/app/javascript/mastodon/components/menu/items.tsx index 65ca611d608..38518bce06a 100644 --- a/app/javascript/mastodon/components/menu/items.tsx +++ b/app/javascript/mastodon/components/menu/items.tsx @@ -164,6 +164,13 @@ export const MenuItemLink: React.FC = ({ const Wrapper = type === 'actions' ? Fragment : 'li'; const asElement = (as ?? 'link') === 'link' ? NavLink : 'a'; + const externalLinkProps = + as === 'a' + ? { + target: '_blank', + rel: 'noopener', + } + : undefined; return ( @@ -171,6 +178,7 @@ export const MenuItemLink: React.FC = ({ as={asElement} role={type === 'actions' ? 'menuitem' : undefined} onKeyDown={handleSpacebarPress} + {...externalLinkProps} {...props} > {children} diff --git a/app/javascript/mastodon/features/navigation_panel/redesign/account_card_and_menu.module.scss b/app/javascript/mastodon/features/navigation_panel/redesign/account_card_and_menu.module.scss index 9679354469f..6b2e375b8f4 100644 --- a/app/javascript/mastodon/features/navigation_panel/redesign/account_card_and_menu.module.scss +++ b/app/javascript/mastodon/features/navigation_panel/redesign/account_card_and_menu.module.scss @@ -9,6 +9,7 @@ & > :global(.account) { flex-grow: 1; + overflow: hidden; --account-outer-spacing: 0; --avatar-border-radius: var(--radius-round); diff --git a/app/javascript/mastodon/features/navigation_panel/redesign/account_card_and_menu.tsx b/app/javascript/mastodon/features/navigation_panel/redesign/account_card_and_menu.tsx index bf7c8f58f2c..14b5ce59f46 100644 --- a/app/javascript/mastodon/features/navigation_panel/redesign/account_card_and_menu.tsx +++ b/app/javascript/mastodon/features/navigation_panel/redesign/account_card_and_menu.tsx @@ -10,6 +10,8 @@ import { HeartIcon, UsersThreeIcon, ProhibitIcon, + GavelIcon, + ShieldStarIcon, SignOutIcon, } from '@phosphor-icons/react'; @@ -26,13 +28,17 @@ import { } from '@/mastodon/components/menu'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useIdentity } from '@/mastodon/identity_context'; +import { + canManageReports, + canViewAdminDashboard, +} from '@/mastodon/permissions'; import { useAppDispatch } from '@/mastodon/store'; import classes from './account_card_and_menu.module.scss'; export const NavigationAccountCardAndMenu: React.FC = () => { const dispatch = useAppDispatch(); - const { accountId } = useIdentity(); + const { accountId, permissions } = useIdentity(); const account = useAccount(accountId); const confirmLogout = useCallback(() => { @@ -43,6 +49,9 @@ export const NavigationAccountCardAndMenu: React.FC = () => { return null; } + const isManager = canManageReports(permissions); + const isAdmin = canViewAdminDashboard(permissions); + const accountBasePath = `/@${account?.acct}`; return ( @@ -97,10 +106,7 @@ export const NavigationAccountCardAndMenu: React.FC = () => { - + { /> + {(isManager || isAdmin) && ( + <> + + + {isAdmin && ( + + + + )} + + {isManager && ( + + + + )} + + )} +