import type { FC, ReactNode } from 'react'; import IconAdmin from '@/images/icons/icon_admin.svg?react'; import { AutomatedBadge, Badge, GroupBadge } from '@/mastodon/components/badge'; import { Icon } from '@/mastodon/components/icon'; import { useAccount } from '@/mastodon/hooks/useAccount'; import type { AccountRole } from '@/mastodon/models/account'; import { useAppSelector } from '@/mastodon/store'; import { isRedesignEnabled } from '../common'; import classes from './redesign.module.scss'; export const AccountBadges: FC<{ accountId: string }> = ({ accountId }) => { const account = useAccount(accountId); const localDomain = useAppSelector( (state) => state.meta.get('domain') as string, ); const badges = []; if (!account) { return null; } const className = isRedesignEnabled() ? classes.badge : ''; if (account.bot) { badges.push(); } else if (account.group) { badges.push(); } const domain = account.acct.includes('@') ? account.acct.split('@')[1] : localDomain; account.roles.forEach((role) => { let icon: ReactNode = undefined; if (isAdminBadge(role)) { icon = ( ); } badges.push( , ); }); if (!badges.length) { return null; } return
{badges}
; }; function isAdminBadge(role: AccountRole) { const name = role.name.toLowerCase(); return isRedesignEnabled() && (name === 'admin' || name === 'owner'); }